[asterisk-bugs] [JIRA] (ASTERISK-25031) DTMF INFO before answer leads to 200 OK without Contact: header
Etienne Allovon (JIRA)
noreply at issues.asterisk.org
Wed Apr 29 07:51:32 CDT 2015
[ https://issues.asterisk.org/jira/browse/ASTERISK-25031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Etienne Allovon updated ASTERISK-25031:
---------------------------------------
External Issue ID: 5545
> DTMF INFO before answer leads to 200 OK without Contact: header
> ---------------------------------------------------------------
>
> Key: ASTERISK-25031
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-25031
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Channels/chan_sip/General
> Affects Versions: 11.17.1
> Reporter: Etienne Allovon
> Attachments: ASTERISK-25031-asterisk-extensions.conf, ASTERISK-25031-asterisk-full.log, ASTERISK-25031-asterisk-sip.conf, REGISTER_INVITE_client-dtmf.csv, REGISTER_INVITE_client-dtmf.xml
>
>
> *Summary*
> When asterisk receives a INFO message (DTMF) before the call was asnwered it answers the INFO with a SIP 200 OK without the {{Contact:}} header.
> It results, for the receiving peer, to terminate the call (SIP BYE) because he can't answer.
> For example, if the receiving peer is an asterisk, you get the following WARNING in the CLI :
> {code}
> WARNING[32089] chan_sip.c: Invalid contact uri (missing sip: or sips:), attempting to use anyway
> {code}
> *When does it happen in real life ?*
> In real life I saw it with two asterisk interconnected with a SIP trunk and a T1/E1 connection :
> {code}
> Phone ---SIP--- (asterisk) --- SIP --- (asterisk-gw) --- E1/T1 ---
> {code}
> Let's say you call a premium-rate number. Before answering the call the service will play a message saying something like : _This is a premimum-rate number, you'll be charged ... next time press # to skip this message_
> If you press #, call is hangup.
> Here's what happen _asterisk-gw_ point of view :
> {code}
> < INVITE (CSeq 1)
> > 401 Unauthorized (CSeq 1)
> < ACK (CSeq 1)
> < INVITE (CSeq 2)
> > (isdn) SETUP
> < (isdn) CALL PROCEEDING
> > 100 Trying (CSeq 2)
> < (isdn) CALL PROGRESS
> > 183 Progress (CSeq 2)
> < INFO (#) (CSeq 3)
> > 200 OK (CSeq 3) .... /!\ which does not contain the Contact: header
> > BYE 500 Server error
> {code}
> The 200 OK to the INFO message does not contain the {{Contact:}} header.
> *How to reproduce*
> Below is a SIP exchange forged with SIPp which reproduce the problem :
> {code}
> < INVITE (CSeq 1)
> > 401 Unauthorized (CSeq 1)
> < ACK (CSeq 1)
> < INVITE (CSeq 2)
> > 100 Trying (CSeq 2)
> > 183 Progress (CSeq 2)
> < INFO (#) (CSeq 3)
> > 200 OK (CSeq 3) .... /!\ which does not contain the Contact: header
> {code}
> The bug appears at step #7.
> Here's the SIPp command to launch the scenario :
> {code}
> /usr/src/sipp-3.3/sipp 192.168.18.55 -sf REGISTER_INVITE_client.xml -inf REGISTER_INVITE_client.csv -i 192.168.18.11 -m 1 -l 1 -r 1
> {code}
> You need to :
> * replace 192.168.18.65 asterisk IP,
> * replace 192.168.18.11 with SIPp client IP
> * get the REGISTER_INVITE_client-dtmf.xml file,
> * get the REGISTER_INVITE_client-dtmf.csv file and change the authentication information
> *References*
> SIPp scenarios based on examples found here : http://tomeko.net/other/sipp/sipp_cheatsheet.php?lang
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list