300 message without Diversion header
hello, i got a strange issue ... I'm using FS as a redirect server (route server) and it does work fine ... except if the original INVITE contains a Diversion header, the same header is lost in the responding 300 or 302 message. Is this by design or its a bug ? this is a part of the code in sofia where u construct redirect response message... if (argc > 1) { nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); } else { nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); } so, why the original diversion header is missing ? ... m'I missing something ? also, should the 3000/302 message always contain a diversion field saying the call is diverted ? Thanks for your answer, Tihomir.
Check your variables. via uuid_dump/info /b On May 26, 2011, at 2:42 PM, Tihomir Culjaga wrote:
hello,
i got a strange issue ... I'm using FS as a redirect server (route server) and it does work fine ... except if the original INVITE contains a Diversion header, the same header is lost in the responding 300 or 302 message. Is this by design or its a bug ?
this is a part of the code in sofia where u construct redirect response message...
if (argc > 1) { nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); } else { nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); }
so, why the original diversion header is missing ? ... m'I missing something ?
also, should the 3000/302 message always contain a diversion field saying the call is diverted ?
Thanks for your answer, Tihomir. _______________________________________________ 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
On Thu, May 26, 2011 at 9:54 PM, Brian West <brian@freeswitch.org> wrote:
Check your variables. via uuid_dump/info
here they are :=) EXECUTE sofia/external/00681038515000402@127.0.0.1:5061 info() 2011-05-26 10:05:29.230485 [INFO] mod_dptools.c:1203 CHANNEL_DATA: Channel-State: [CS_EXECUTE] Channel-Call-State: [RINGING] Channel-State-Number: [4] Channel-Name: [sofia/external/00681038515000402@127.0.0.1:5061] Unique-ID: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] Call-Direction: [inbound] Presence-Call-Direction: [inbound] Answer-State: [ringing] Channel-Read-Codec-Name: [PCMA] Channel-Read-Codec-Rate: [8000] Channel-Read-Codec-Bit-Rate: [64000] Channel-Write-Codec-Name: [PCMA] Channel-Write-Codec-Rate: [8000] Channel-Write-Codec-Bit-Rate: [64000] Caller-Direction: [inbound] Caller-Username: [00681038515000402] Caller-Dialplan: [XML] Caller-Caller-ID-Name: [00681038515000402] Caller-Caller-ID-Number: [00681038515000402] Caller-Network-Addr: [10.4.62.88] Caller-ANI: [00681038515000402] Caller-Destination-Number: [30003016094191500] Caller-Unique-ID: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] Caller-Source: [mod_sofia] Caller-Context: [public] Caller-Channel-Name: [sofia/external/00681038515000402@127.0.0.1:5061] Caller-Profile-Index: [1] Caller-Profile-Created-Time: [1306407929129882] Caller-Channel-Created-Time: [1306407929129882] Caller-Channel-Answered-Time: [0] Caller-Channel-Progress-Time: [0] Caller-Channel-Progress-Media-Time: [0] Caller-Channel-Hangup-Time: [0] Caller-Channel-Transfer-Time: [0] Caller-Screen-Bit: [true] Caller-Privacy-Hide-Name: [false] Caller-Privacy-Hide-Number: [false] variable_direction: [inbound] variable_uuid: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] variable_sip_local_network_addr: [10.4.62.88] variable_sip_network_ip: [10.4.62.88] variable_sip_network_port: [5061] variable_sip_received_ip: [10.4.62.88] variable_sip_received_port: [5061] variable_sip_via_protocol: [udp] variable_sip_from_user: [00681038515000402] variable_sip_from_port: [5061] variable_sip_from_uri: [00681038515000402@127.0.0.1:5061] variable_sip_from_host: [127.0.0.1] variable_sip_from_user_stripped: [00681038515000402] variable_sip_from_tag: [3] variable_sofia_profile_name: [external] variable_sip_full_via: [SIP/2.0/UDP 127.0.0.1:5061 ;branch=z9hG4bK-354-3-0;received=10.4.62.88] variable_sip_from_display: [00681038515000402] variable_sip_full_from: [00681038515000402 < sip:00681038515000402@127.0.0.1:5061>;tag=3] variable_sip_to_display: [30003016094191500] variable_sip_full_to: [30003016094191500 < sip:30003016094191500@10.4.62.88:5060>] variable_sip_req_user: [30003016094191500] variable_sip_req_port: [5060] variable_sip_req_uri: [30003016094191500@10.4.62.88:5060] variable_sip_req_host: [10.4.62.88] variable_sip_to_user: [30003016094191500] variable_sip_to_port: [5060] variable_sip_to_uri: [30003016094191500@10.4.62.88:5060] variable_sip_to_host: [10.4.62.88] variable_sip_contact_user: [00681038515000402] variable_sip_contact_uri: [00681038515000402@127.0.0.1] variable_sip_contact_host: [127.0.0.1] variable_channel_name: [sofia/external/00681038515000402@127.0.0.1:5061] variable_sip_call_id: [3-354@127.0.0.1] variable_sip_via_host: [127.0.0.1] variable_sip_via_port: [5061] variable_max_forwards: [70] variable_sip_h_Diversion: [<sip:030230003038516608363@10.4.13.11 ;user=phone>;reason=deflection;counter=1] variable_switch_r_sdp: [v=0 o=user1 53655765 2353687637 IN IP4 127.0.0.1 s=- c=IN IP4 127.0.0.1 t=0 0 m=audio 6000 RTP/AVP 0 a=rtpmap:0 PCMA/8000 ] variable_remote_media_ip: [127.0.0.1] variable_remote_media_port: [6000] variable_sip_audio_recv_pt: [0] variable_sip_use_codec_name: [PCMA] variable_sip_use_codec_rate: [8000] variable_sip_use_codec_ptime: [20] variable_read_codec: [PCMA] variable_read_rate: [8000] variable_write_codec: [PCMA] variable_write_rate: [8000] variable_dtmf_type: [none] variable_endpoint_disposition: [RECEIVED] variable_intf: [false] variable_aPfx: [006810] variable_divertTo: [385030230003038516608363] variable_aNum: [38515000402] variable_IP_ADDR: [10.4.62.88:5060] variable_bPfx: [300030] variable_bNum: [16094191500] variable_caller_id_number: [006810385030230003038516608363] variable_my_sid: [[006810 38515000402 -> 300030 16094191500 : gid-68ab-5969]] variable_red_contact: [<sip:01002016094191500@10.4.62.88:5060 ;user=phone>;q=0.99,<sip:04901016094191500@10.4.62.88:5060 ;user=phone>;q=0.98,<sip:03861016094191500@10.4.62.88:5060 ;user=phone>;q=0.97,<sip:00001016094191500@10.4.62.88:5060 ;user=phone>;q=0.96] variable_authResult: [0] variable_componentStatus: [0:0] variable_current_application: [info] Invite: ------------------------------------------------------------------------ INVITE sip:30003016094191500@10.4.62.88:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5061;branch=z9hG4bK-354-3-0 Max-Forwards: 70 Contact: <sip:00681038515000402@127.0.0.1> Diversion: <sip:030230003038516608363@10.4.13.11 ;user=phone>;reason=deflection;counter=1 From: 00681038515000402 <sip:00681038515000402@127.0.0.1:5061>;tag=3 To: 30003016094191500 <sip:30003016094191500@10.4.62.88:5060> Call-ID: 3-354@127.0.0.1 CSeq: 1 INVITE Content-Type: application/sdp Content-Length: 129 v=0 o=user1 53655765 2353687637 IN IP4 127.0.0.1 s=- c=IN IP4 127.0.0.1 t=0 0 m=audio 6000 RTP/AVP 0 a=rtpmap:0 PCMA/8000 ------------------------------------------------------------------------ 300: ------------------------------------------------------------------------ SIP/2.0 300 Multiple Choices Via: SIP/2.0/UDP 127.0.0.1:5061 ;branch=z9hG4bK-354-3-0;received=10.4.62.88 From: 00681038515000402 <sip:00681038515000402@127.0.0.1:5061>;tag=3 To: 30003016094191500 <sip:30003016094191500@10.4.62.88:5060
;tag=N0pScX59jUjHm Call-ID: 3-354@127.0.0.1 CSeq: 1 INVITE Contact: <sip:01002016094191500@10.4.62.88:5060;user=phone>;q=0.99 Contact: <sip:04901016094191500@10.4.62.88:5060;user=phone>;q=0.98 Contact: <sip:03861016094191500@10.4.62.88:5060;user=phone>;q=0.97 Contact: <sip:00001016094191500@10.4.62.88:5060;user=phone>;q=0.96 User-Agent: FreeSWITCH-mod_sofia/1.0.head-git- Accept: application/sdp Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY Supported: timer, precondition, path, replaces Allow-Events: talk, hold, refer Content-Length: 0
------------------------------------------------------------------------
/b
On May 26, 2011, at 2:42 PM, Tihomir Culjaga wrote:
hello,
i got a strange issue ... I'm using FS as a redirect server (route server) and it does work fine ... except if the original INVITE contains a Diversion header, the same header is lost in the responding 300 or 302 message. Is this by design or its a bug ?
this is a part of the code in sofia where u construct redirect response message...
if (argc > 1) { nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); } else { nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); }
so, why the original diversion header is missing ? ... m'I missing something ?
also, should the 3000/302 message always contain a diversion field saying the call is diverted ?
Thanks for your answer, Tihomir. _______________________________________________ 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
_______________________________________________ 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
so, is ti by design or its a bug.... can someone tell ? T: On Fri, May 27, 2011 at 10:17 AM, Tihomir Culjaga <tculjaga@gmail.com>wrote:
On Thu, May 26, 2011 at 9:54 PM, Brian West <brian@freeswitch.org> wrote:
Check your variables. via uuid_dump/info
here they are :=)
EXECUTE sofia/external/00681038515000402@127.0.0.1:5061 info() 2011-05-26 10:05:29.230485 [INFO] mod_dptools.c:1203 CHANNEL_DATA: Channel-State: [CS_EXECUTE] Channel-Call-State: [RINGING] Channel-State-Number: [4] Channel-Name: [sofia/external/00681038515000402@127.0.0.1:5061] Unique-ID: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] Call-Direction: [inbound] Presence-Call-Direction: [inbound] Answer-State: [ringing] Channel-Read-Codec-Name: [PCMA] Channel-Read-Codec-Rate: [8000] Channel-Read-Codec-Bit-Rate: [64000] Channel-Write-Codec-Name: [PCMA] Channel-Write-Codec-Rate: [8000] Channel-Write-Codec-Bit-Rate: [64000] Caller-Direction: [inbound] Caller-Username: [00681038515000402] Caller-Dialplan: [XML] Caller-Caller-ID-Name: [00681038515000402] Caller-Caller-ID-Number: [00681038515000402] Caller-Network-Addr: [10.4.62.88] Caller-ANI: [00681038515000402] Caller-Destination-Number: [30003016094191500] Caller-Unique-ID: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] Caller-Source: [mod_sofia] Caller-Context: [public] Caller-Channel-Name: [sofia/external/00681038515000402@127.0.0.1:5061] Caller-Profile-Index: [1] Caller-Profile-Created-Time: [1306407929129882] Caller-Channel-Created-Time: [1306407929129882] Caller-Channel-Answered-Time: [0] Caller-Channel-Progress-Time: [0] Caller-Channel-Progress-Media-Time: [0] Caller-Channel-Hangup-Time: [0] Caller-Channel-Transfer-Time: [0] Caller-Screen-Bit: [true] Caller-Privacy-Hide-Name: [false] Caller-Privacy-Hide-Number: [false] variable_direction: [inbound] variable_uuid: [17ebc5e5-87cf-4fc9-a5b7-c69c0e682d41] variable_sip_local_network_addr: [10.4.62.88] variable_sip_network_ip: [10.4.62.88] variable_sip_network_port: [5061] variable_sip_received_ip: [10.4.62.88] variable_sip_received_port: [5061] variable_sip_via_protocol: [udp] variable_sip_from_user: [00681038515000402] variable_sip_from_port: [5061] variable_sip_from_uri: [00681038515000402@127.0.0.1:5061] variable_sip_from_host: [127.0.0.1] variable_sip_from_user_stripped: [00681038515000402] variable_sip_from_tag: [3] variable_sofia_profile_name: [external] variable_sip_full_via: [SIP/2.0/UDP 127.0.0.1:5061 ;branch=z9hG4bK-354-3-0;received=10.4.62.88] variable_sip_from_display: [00681038515000402] variable_sip_full_from: [00681038515000402 < sip:00681038515000402@127.0.0.1:5061>;tag=3] variable_sip_to_display: [30003016094191500] variable_sip_full_to: [30003016094191500 < sip:30003016094191500@10.4.62.88:5060>] variable_sip_req_user: [30003016094191500] variable_sip_req_port: [5060] variable_sip_req_uri: [30003016094191500@10.4.62.88:5060] variable_sip_req_host: [10.4.62.88] variable_sip_to_user: [30003016094191500] variable_sip_to_port: [5060] variable_sip_to_uri: [30003016094191500@10.4.62.88:5060] variable_sip_to_host: [10.4.62.88] variable_sip_contact_user: [00681038515000402] variable_sip_contact_uri: [00681038515000402@127.0.0.1] variable_sip_contact_host: [127.0.0.1] variable_channel_name: [sofia/external/00681038515000402@127.0.0.1:5061] variable_sip_call_id: [3-354@127.0.0.1] variable_sip_via_host: [127.0.0.1] variable_sip_via_port: [5061] variable_max_forwards: [70] variable_sip_h_Diversion: [<sip:030230003038516608363@10.4.13.11 ;user=phone>;reason=deflection;counter=1] variable_switch_r_sdp: [v=0 o=user1 53655765 2353687637 IN IP4 127.0.0.1 s=- c=IN IP4 127.0.0.1 t=0 0 m=audio 6000 RTP/AVP 0 a=rtpmap:0 PCMA/8000 ] variable_remote_media_ip: [127.0.0.1] variable_remote_media_port: [6000] variable_sip_audio_recv_pt: [0] variable_sip_use_codec_name: [PCMA] variable_sip_use_codec_rate: [8000] variable_sip_use_codec_ptime: [20] variable_read_codec: [PCMA] variable_read_rate: [8000] variable_write_codec: [PCMA] variable_write_rate: [8000] variable_dtmf_type: [none] variable_endpoint_disposition: [RECEIVED] variable_intf: [false] variable_aPfx: [006810] variable_divertTo: [385030230003038516608363] variable_aNum: [38515000402] variable_IP_ADDR: [10.4.62.88:5060] variable_bPfx: [300030] variable_bNum: [16094191500] variable_caller_id_number: [006810385030230003038516608363] variable_my_sid: [[006810 38515000402 -> 300030 16094191500 : gid-68ab-5969]] variable_red_contact: [<sip:01002016094191500@10.4.62.88:5060 ;user=phone>;q=0.99,<sip:04901016094191500@10.4.62.88:5060 ;user=phone>;q=0.98,<sip:03861016094191500@10.4.62.88:5060 ;user=phone>;q=0.97,<sip:00001016094191500@10.4.62.88:5060 ;user=phone>;q=0.96]
variable_authResult: [0] variable_componentStatus: [0:0] variable_current_application: [info]
Invite: ------------------------------------------------------------------------ INVITE sip:30003016094191500@10.4.62.88:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5061;branch=z9hG4bK-354-3-0 Max-Forwards: 70 Contact: <sip:00681038515000402@127.0.0.1> Diversion: <sip:030230003038516608363@10.4.13.11 ;user=phone>;reason=deflection;counter=1 From: 00681038515000402 <sip:00681038515000402@127.0.0.1:5061>;tag=3 To: 30003016094191500 <sip:30003016094191500@10.4.62.88:5060> Call-ID: 3-354@127.0.0.1 CSeq: 1 INVITE Content-Type: application/sdp Content-Length: 129
v=0 o=user1 53655765 2353687637 IN IP4 127.0.0.1 s=- c=IN IP4 127.0.0.1 t=0 0 m=audio 6000 RTP/AVP 0 a=rtpmap:0 PCMA/8000 ------------------------------------------------------------------------
300: ------------------------------------------------------------------------ SIP/2.0 300 Multiple Choices Via: SIP/2.0/UDP 127.0.0.1:5061 ;branch=z9hG4bK-354-3-0;received=10.4.62.88 From: 00681038515000402 <sip:00681038515000402@127.0.0.1:5061>;tag=3 To: 30003016094191500 <sip:30003016094191500@10.4.62.88:5060
;tag=N0pScX59jUjHm Call-ID: 3-354@127.0.0.1 CSeq: 1 INVITE Contact: <sip:01002016094191500@10.4.62.88:5060;user=phone>;q=0.99 Contact: <sip:04901016094191500@10.4.62.88:5060;user=phone>;q=0.98 Contact: <sip:03861016094191500@10.4.62.88:5060;user=phone>;q=0.97 Contact: <sip:00001016094191500@10.4.62.88:5060;user=phone>;q=0.96 User-Agent: FreeSWITCH-mod_sofia/1.0.head-git- Accept: application/sdp Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY Supported: timer, precondition, path, replaces Allow-Events: talk, hold, refer Content-Length: 0
------------------------------------------------------------------------
/b
On May 26, 2011, at 2:42 PM, Tihomir Culjaga wrote:
hello,
i got a strange issue ... I'm using FS as a redirect server (route server) and it does work fine ... except if the original INVITE contains a Diversion header, the same header is lost in the responding 300 or 302 message. Is this by design or its a bug ?
this is a part of the code in sofia where u construct redirect response message...
if (argc > 1) { nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); } else { nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END()); }
so, why the original diversion header is missing ? ... m'I missing something ?
also, should the 3000/302 message always contain a diversion field saying the call is diverted ?
Thanks for your answer, Tihomir. _______________________________________________ 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
_______________________________________________ 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
Tihomir Culjaga wrote:
should the 3000/302 message always contain a diversion field saying the call is diverted ?
http://tools.ietf.org/html/rfc5806#section-5.3 says it "SHOULD". The Diversion header could be encrypted (/removed?) for privacy reasons. http://tools.ietf.org/html/rfc5806#section-7 Philipp -- http://twitter.com/kempgen
On Fri, May 27, 2011 at 12:38 AM, Philipp Kempgen <lists@kempgen.net> wrote:
Tihomir Culjaga wrote:
should the 3000/302 message always contain a diversion field saying the call is diverted ?
http://tools.ietf.org/html/rfc5806#section-5.3 says it "SHOULD".
everything in RFC is "SHOULD" or "MAY" ... this is not ETSI.
The Diversion header could be encrypted (/removed?) for privacy reasons. http://tools.ietf.org/html/rfc5806#section-7
there is a Flag for privacy on Diversion header and its not supposed to be removed in this case :=) diversion-privacy = "privacy" "=" ( "full" | "name" | "uri" | "off" | token | quoted-string )
Philipp
_______________________________________________ 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
participants (3)
-
Brian West
-
Philipp Kempgen
-
Tihomir Culjaga