Bounty challenged

From FreeSWITCH Wiki
Jump to: navigation, search

Contents

Dead channel detection

This has been implemented -- for RTP see conf/sip_profiles/default.xml: <param name="rtp-timeout-sec" value="300"/>. Might also be possible with SIP, check: <param name="session-timeout" value="120"/>

Problem description

With SIP over UDP, there is no way for an endpoint to know when another endpoint has died if the other endpoint does not send a BYE message. If its abruptly killed (kill -9, unplug, etc), it will not have a chance to send a BYE. When that happens, the endpoint that was connected to the abruptly killed endpoint will have a "zombie channel".

What is needed

A mechanism to detect clients that have disappeared (e.g., the client segfaults or the client machine is abruptly turned off). This will not use RTP timeout, because there can be valid channels not sending RTP due to VAD silence suppression. The proper solution is to have the server send SIP OPTIONS to the end points. If they don't respond, the channel will be considered dead and it will be hung up on. The Sofia-SIP stack may need to be modified to build this feature. (hint: take a look at NUA_KEEPALIVE)

Astconf2fsconf

A utility that will convert an Asterisk dial-plan into a FreeSWITCH dialplan. More info.

Convert mod_perl to use CoreSession

mod_perl needs to be upgraded to use the CoreSession object as used in mod_python

Python/Twisted event socket client library

See FreePY under scripts/python/

Client library to communicate with FreeSWITCH's mod_event_socket via Python, using the twisted asynchronous networking framework.