• James Zhang's avatar
    freetdm: Clean up SS7 native bridge code to separate the call control, queuing and · b324f867
    James Zhang 提交于
             resource-cleanup responsibilities clearly between the 2 channels involved in the bridge
    
       - Each channel is responsible for clearning its own peer_data and event queue
         at the end of the call (when moving to DOWN state)
    
       - Each channel dequeues messages only from its own queue and enqueues messages
         in the peer's queue, with the only exception being messages received before
         the bridge is stablished (IAM for sure and possible SAM messages) because
         if the bridge is not yet stablished the messages must be queued by the channel
         in its own queue temporarily until the bridge is ready
    
       - When the bridge is ready it is the responsibility of the incoming channel to
         move the messages that stored temporarily in its own queue to the bridged peer queue
    
       - During hangup, each channel is responsible for moving itself to DOWN. The procedure
         however differs slightly depending on the hangup conditions
    
         If the user requests hangup (ie, FreeSWITCH) the request will be noted by setting the
         FTDM_CHANNEL_USER_HANGUP flag but will not be processed yet because call control is
         driven only by the link messages (so no hangup from ESL or command line allowed)
    
         When REL message comes, the channel receiving it must move to TERMINATING state and:
    
               - If the user has not hangup yet (FTDM_CHANNEL_USER_HANGUP flag not set) then
                 notify the user via SIGEVENT_STOP and wait for the user to move to HANGUP
                 state by calling ftdm_channel_call_hangup() before sending RLC
    
               - If the user did hangup already (FTDM_CHANNEL_USER_HANGUP flag is set) then
                 skip user notification and move to HANGUP state directly where the RLC message
                 will be sent
    
       - On HANGUP state the RLC is sent and the channel is moved to DOWN, final state
         The peer channel will forward the REL message and wait for RLC from the network, when
         RLC is received the channel can move straight to DOWN itself because the peer channel
         is completing its own shutdown procedure when it received the REL message
    b324f867
名称
最后提交
最后更新
build 正在载入提交数据...
clients/flex 正在载入提交数据...
cmake_modules 正在载入提交数据...
conf 正在载入提交数据...
debian 正在载入提交数据...
docs 正在载入提交数据...
dtd 正在载入提交数据...
freeswitch.xcodeproj 正在载入提交数据...
fscomm 正在载入提交数据...
htdocs 正在载入提交数据...
libs 正在载入提交数据...
patches 正在载入提交数据...
scripts 正在载入提交数据...
src 正在载入提交数据...
support-d 正在载入提交数据...
w32 正在载入提交数据...
web 正在载入提交数据...
.gitignore 正在载入提交数据...
.version.in 正在载入提交数据...
CMakeLists.txt 正在载入提交数据...
Freeswitch.2005.unsupported.sln 正在载入提交数据...
Freeswitch.2008.express.sln 正在载入提交数据...
Freeswitch.2008.sln 正在载入提交数据...
Freeswitch.2008.sln.debug.bat 正在载入提交数据...
Freeswitch.2008.sln.release.bat 正在载入提交数据...
Freeswitch.2010.express.sln 正在载入提交数据...
Freeswitch.2010.sln 正在载入提交数据...
INSTALL 正在载入提交数据...
Makefile.am 正在载入提交数据...
acinclude.m4 正在载入提交数据...
bootstrap.sh 正在载入提交数据...
configure.in 正在载入提交数据...
devel-bootstrap.sh 正在载入提交数据...
freeswitch-sounds-en-us-callie.spec 正在载入提交数据...
freeswitch-sounds-ru-RU-elena.spec 正在载入提交数据...
freeswitch.spec 正在载入提交数据...