Freeswitch not correctly terminating dialog with BYE for T.38 invite
Hi there! We have a situation, primarily with specific numbers, where freeswitch executes a T.38 INVITE and our SIP provider is responding with a 408 Request Timeout, and Freeswitch responds with an ACK. However, no BYE is sent and our SIP provider thinks the call is still active, and ends up billing us for a lot of dead air. Thankfully they have a timeout and stop billing us after 6 hours, but its still costing us a lot of money. The error Freeswitch is giving us in the cdr for this call is: RECOVERY_ON_TIMER_EXPIRE We've used the latest code from git as well as 1.2, and the issue persists. Furthermore, the SIP provider claims this is not correctly following the RFC:If the response for a request within a dialog is a 481 (Call/Transaction Does Not Exist) or a 408 (Request Timeout), the UAC SHOULD terminate the dialog. A UAC SHOULD also terminate a dialog if no response at all is received for the request (the client transaction would inform the TU about the timeout.) For INVITE initiated dialogs, terminating the dialog consists of sending a BYE. Thanks!
The 408 is terminating the dialog .... Its a 400 error response to the INVITE...... BYE is used after the session is established... Example UAC -> INVITE -> UAS UAC <- 100 TRYING <- UAS UAC <- 404 NOT FOUND <- UAS UAC -> ACK -> UAC Note this is a complete transaction and there is No Bye here... The 404 tells the UAC that we¹re at the end of the call... When the provider sends FS a 408, this is telling FS sorry we¹re giving up because the terminating end isnt responding... On 7/25/13 9:59 AM, "Bruce Lefko" <blefko5361@gmail.com> wrote:
Hi there!
We have a situation, primarily with specific numbers, where freeswitch executes a T.38 INVITE and our SIP provider is responding with a 408 Request Timeout, and Freeswitch responds with an ACK.
However, no BYE is sent and our SIP provider thinks the call is still active, and ends up billing us for a lot of dead air. Thankfully they have a timeout and stop billing us after 6 hours, but its still costing us a lot of money.
The error Freeswitch is giving us in the cdr for this call is: RECOVERY_ON_TIMER_EXPIRE
We've used the latest code from git as well as 1.2, and the issue persists.
Furthermore, the SIP provider claims this is not correctly following the RFC:If the response for a request within a dialog is a 481 (Call/Transaction Does Not Exist) or a 408 (Request Timeout), the UAC SHOULD terminate the dialog. A UAC SHOULD also terminate a dialog if no response at all is received for the request (the client transaction would inform the TU about the timeout.)
For INVITE initiated dialogs, terminating the dialog consists of sending a BYE.
Thanks!
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Ken http://www.FreeSWITCH.org http://www.ClueCon.com http://www.OSTAG.org irc.freenode.net #freeswitch
participants (2)
-
Bruce Lefko
-
Ken Rice