[Freeswitch-users] RFC3578

Timur Irmatov irmatov at gmail.com
Wed Mar 17 01:32:50 PDT 2010


On Fri, Mar 12, 2010 at 5:56 PM, Brian West <brian at 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 at 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 at 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 at 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 at 10.0.2.5) Ended
2010-03-17 09:45:07.332066 [NOTICE] switch_core_session.c:1181 Close
Channel sofia/external/1220139 at 10.0.2.5 [CS_DESTROY]
2010-03-17 09:45:08.448839 [NOTICE] switch_channel.c:669 New Channel
sofia/external/1220139 at 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 at 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 at 10.0.2.5) Ended
2010-03-17 09:45:08.450840 [NOTICE] switch_core_session.c:1181 Close
Channel sofia/external/1220139 at 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 at 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 at 10.0.2.5.
From: <sip:1220139 at 10.0.2.5;user=phone>;tag=c5514b7f.
To: <sip:00610 at 172.16.12.11;user=phone>.
CSeq: 1 INVITE.
Contact: <sip:1220139 at 10.0.2.5:5070;user=phone>.
Supported: 100rel.
P-Asserted-Identity: <sip:1220139 at 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 at 10.0.2.5;user=phone>;tag=c5514b7f.
To: <sip:00610 at 172.16.12.11;user=phone>.
Call-ID: a46545ffe2c776583bb02de315e8761a at 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 at 10.0.2.5;user=phone>;tag=c5514b7f.
To: <sip:00610 at 172.16.12.11;user=phone>;tag=4gHUF5NN21SXS.
Call-ID: a46545ffe2c776583bb02de315e8761a at 10.0.2.5.
CSeq: 1 INVITE.
Contact: <sip:00610 at 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 at 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 at 10.0.2.5.
From: <sip:1220139 at 10.0.2.5;user=phone>;tag=c5514b7f.
To: <sip:00610 at 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 at 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 at 10.0.2.5.
From: <sip:1220139 at 10.0.2.5;user=phone>;tag=df50ba93.
To: <sip:006107 at 172.16.12.11;user=phone>.
CSeq: 1 INVITE.
Contact: <sip:1220139 at 10.0.2.5:5070;user=phone>.
P-Asserted-Identity: <sip:1220139 at 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 at 10.0.2.5;user=phone>;tag=df50ba93.
To: <sip:006107 at 172.16.12.11;user=phone>.
Call-ID: 07f13e02d6d0be530d5da938452260a0 at 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 at 10.0.2.5;user=phone>;tag=df50ba93.
To: <sip:006107 at 172.16.12.11;user=phone>;tag=5SamH06rZaggN.
Call-ID: 07f13e02d6d0be530d5da938452260a0 at 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 at 172.16.12.11>.
.

#
U 10.0.2.5:5070 -> 172.16.12.11:5090
ACK sip:006107 at 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 at 10.0.2.5.
From: <sip:1220139 at 10.0.2.5;user=phone>;tag=df50ba93.
To: <sip:006107 at 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 at jabber.ru




More information about the FreeSWITCH-users mailing list