On Fri, Mar 12, 2010 at 5:56 PM, Brian West <brian@freeswitch.org> wrote:
It already works use the respond application in the dialplan to respond 484
Thanks for the hint, Brian. I have a SoftX3000 softswitch sending calls to FreeSWITCH. SoftX3000 is configured to send anything between 5 and 20 digits. I want FreeSWITCH to respond 484 until it receives enough digits to make a call. Here is an excerpt from my dialplan: <extension name="public_extensions"> <condition field="destination_number" expression="^006[0-9]{0,13}$"> <action application="respond" data="484"/> </condition> </extension> In the first INVITE, softswitch sends 5 digits: 00610. FreeSWITCH answers 484 just as I want it to. Softswitch sends another INVITE, this time with 6 digits: 006107, but *without* SDP. Missing SDP upsets FreeSWITCH and it responds 480, call finishes. Here is log from FreeSWITCH: 2010-03-17 09:45:07.329047 [NOTICE] switch_channel.c:669 New Channel sofia/external/1220139@10.0.2.5 [dc6f5d24-317f-11df-9775-c1f542b963a5] 2010-03-17 09:45:07.331047 [INFO] mod_dialplan_xml.c:418 Processing 1220139->00610 in context public 2010-03-17 09:45:07.331047 [NOTICE] switch_core_state_machine.c:185 sofia/external/1220139@10.0.2.5 has executed the last dialplan instruction, hanging up. 2010-03-17 09:45:07.331047 [NOTICE] switch_core_state_machine.c:187 Hangup sofia/external/1220139@10.0.2.5 [CS_EXECUTE] [NORMAL_CLEARING] 2010-03-17 09:45:07.332066 [NOTICE] switch_core_session.c:1179 Session 3 (sofia/external/1220139@10.0.2.5) Ended 2010-03-17 09:45:07.332066 [NOTICE] switch_core_session.c:1181 Close Channel sofia/external/1220139@10.0.2.5 [CS_DESTROY] 2010-03-17 09:45:08.448839 [NOTICE] switch_channel.c:669 New Channel sofia/external/1220139@10.0.2.5 [dd1a3776-317f-11df-9776-c1f542b963a5] 2010-03-17 09:45:08.448839 [INFO] sofia.c:4388 No SDP in INVITE and 3pcc not enabled, hanging up. 2010-03-17 09:45:08.449840 [NOTICE] sofia.c:4390 Hangup sofia/external/1220139@10.0.2.5 [CS_NEW] [MANDATORY_IE_MISSING] 2010-03-17 09:45:08.450840 [NOTICE] switch_core_session.c:1179 Session 4 (sofia/external/1220139@10.0.2.5) Ended 2010-03-17 09:45:08.450840 [NOTICE] switch_core_session.c:1181 Close Channel sofia/external/1220139@10.0.2.5 [CS_DESTROY] And here are SIP messages, capture made with ngrep: U 10.0.2.5:5070 -> 172.16.12.11:5090 INVITE sip:00610@172.16.12.11:5090;user=phone SIP/2.0. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bK356eaa89a. Call-ID: a46545ffe2c776583bb02de315e8761a@10.0.2.5. From: <sip:1220139@10.0.2.5;user=phone>;tag=c5514b7f. To: <sip:00610@172.16.12.11;user=phone>. CSeq: 1 INVITE. Contact: <sip:1220139@10.0.2.5:5070;user=phone>. Supported: 100rel. P-Asserted-Identity: <sip:1220139@10.0.2.5;user=phone>. User-Agent: Huawei SoftX3000 V300R006B06D060SP32. Max-Forwards: 70. Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,NOTIFY,MESSAGE,REFER. Content-Length: 263. Content-Type: application/sdp. . v=0. o=HuaweiSoftX3000 98044 98044 IN IP4 10.0.2.5. s=Sip Call. c=IN IP4 172.16.12.1. t=0 0. m=audio 50000 RTP/AVP 8 0 18 4 2. a=rtpmap:8 PCMA/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:18 G729/8000. a=rtpmap:4 G723/8000. a=rtpmap:2 G726-32/8000. a=fmtp:18 annexb=yes. # U 172.16.12.11:5090 -> 10.0.2.5:5070 SIP/2.0 100 Trying. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bK356eaa89a. From: <sip:1220139@10.0.2.5;user=phone>;tag=c5514b7f. To: <sip:00610@172.16.12.11;user=phone>. Call-ID: a46545ffe2c776583bb02de315e8761a@10.0.2.5. CSeq: 1 INVITE. User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-hacked. Content-Length: 0. . # U 172.16.12.11:5090 -> 10.0.2.5:5070 SIP/2.0 484 Address Incomplete. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bK356eaa89a. From: <sip:1220139@10.0.2.5;user=phone>;tag=c5514b7f. To: <sip:00610@172.16.12.11;user=phone>;tag=4gHUF5NN21SXS. Call-ID: a46545ffe2c776583bb02de315e8761a@10.0.2.5. CSeq: 1 INVITE. Contact: <sip:00610@172.16.12.11:5090;transport=udp>. User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-hacked. Accept: application/sdp. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY. Supported: timer, precondition, path, replaces. Allow-Events: talk, refer. Content-Length: 0. . # U 10.0.2.5:5070 -> 172.16.12.11:5090 ACK sip:00610@172.16.12.11:5090;user=phone SIP/2.0. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bK356eaa89a. Call-ID: a46545ffe2c776583bb02de315e8761a@10.0.2.5. From: <sip:1220139@10.0.2.5;user=phone>;tag=c5514b7f. To: <sip:00610@172.16.12.11;user=phone>;tag=4gHUF5NN21SXS. CSeq: 1 ACK. Max-Forwards: 70. Content-Length: 0. . # U 10.0.2.5:5070 -> 172.16.12.11:5090 INVITE sip:006107@172.16.12.11:5090;user=phone SIP/2.0. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bKd3fe1aa88. Call-ID: 07f13e02d6d0be530d5da938452260a0@10.0.2.5. From: <sip:1220139@10.0.2.5;user=phone>;tag=df50ba93. To: <sip:006107@172.16.12.11;user=phone>. CSeq: 1 INVITE. Contact: <sip:1220139@10.0.2.5:5070;user=phone>. P-Asserted-Identity: <sip:1220139@10.0.2.5;user=phone>. User-Agent: Huawei SoftX3000 V300R006B06D060SP32. Max-Forwards: 70. Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,NOTIFY,MESSAGE,REFER. Content-Length: 0. . # U 172.16.12.11:5090 -> 10.0.2.5:5070 SIP/2.0 100 Trying. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bKd3fe1aa88. From: <sip:1220139@10.0.2.5;user=phone>;tag=df50ba93. To: <sip:006107@172.16.12.11;user=phone>. Call-ID: 07f13e02d6d0be530d5da938452260a0@10.0.2.5. CSeq: 1 INVITE. User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-hacked. Content-Length: 0. . # U 172.16.12.11:5090 -> 10.0.2.5:5070 SIP/2.0 480 Temporarily Unavailable. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bKd3fe1aa88. From: <sip:1220139@10.0.2.5;user=phone>;tag=df50ba93. To: <sip:006107@172.16.12.11;user=phone>;tag=5SamH06rZaggN. Call-ID: 07f13e02d6d0be530d5da938452260a0@10.0.2.5. CSeq: 1 INVITE. User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-hacked. Accept: application/sdp. Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY. Supported: timer, precondition, path, replaces. Allow-Events: talk, refer. Reason: Q.850;cause=96;text="MANDATORY_IE_MISSING". Content-Length: 0. P-Asserted-Identity: "006107" <sip:006107@172.16.12.11>. . # U 10.0.2.5:5070 -> 172.16.12.11:5090 ACK sip:006107@172.16.12.11:5090;user=phone SIP/2.0. Via: SIP/2.0/UDP 10.0.2.5:5070;branch=z9hG4bKd3fe1aa88. Call-ID: 07f13e02d6d0be530d5da938452260a0@10.0.2.5. From: <sip:1220139@10.0.2.5;user=phone>;tag=df50ba93. To: <sip:006107@172.16.12.11;user=phone>;tag=5SamH06rZaggN. CSeq: 1 ACK. Max-Forwards: 70. Content-Length: 0. RFC3578 says: "The new INVITE has the same Call-ID and the same From header field including the tag as the first INVITE sent, but has an updated Request-URI." SoftX3000 sends second INVITE with different Call-ID. Is there anything I can do on FreeSWITCH to solve this problem and continue receiving additional digits? -- Timur Irmatov, xmpp:irmatov@jabber.ru