[Freeswitch-dev] OZ: possible issue with false positives in Q931IsIEPresent macro
Michael Collins
mcollins at fcnetwork.com
Sat Jun 21 15:16:29 EDT 2008
FYI,
After much pain I am able to say that I can consistently reproduce this
scenario:
In zap_isdn.c, function zap_isdn_931_34, I can always get the
Q931IsIEPresent macro to see a cause ie, whether one is present or not.
I've added this snippet toward the beginning of the function:
if (Q931IsIEPresent(gen->Cause)) {
zap_log(ZAP_LOG_DEBUG, "Cause ie present
[%x]\n",gen->Cause);
}
Raw output is as follows; note that all inbound q931 message say that a
cause ie is present, even when one isn't:
freeswitch at freeswitch2.fcnetwork.com> originate
{origination_caller_id_number=80
05409011,dname='Busy',dnum='5898832',dialednum='5597332791',agentinfo='5
898832.2
791',bcast='Mikey_test'}openzap/1/a/5597332791 825597332791
2008-06-21 12:12:43 [DEBUG] zap_isdn.c:56 isdn_outgoing_call() Changing
state on
1:1 from DOWN to DIALING
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:365
switch_core_session_
run() OpenZAP/1:1/5597332791 Running State Change CS_INIT
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:415
switch_core_session_
run() (OpenZAP/1:1/5597332791) State INIT
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:415
switch_core_session_
run() (OpenZAP/1:1/5597332791) State INIT going to sleep
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:365
switch_core_session_
run() OpenZAP/1:1/5597332791 Running State Change CS_ROUTING
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:420
switch_core_session_
run() (OpenZAP/1:1/5597332791) State ROUTING
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:420
switch_core_session_
run() (OpenZAP/1:1/5597332791) State ROUTING going to sleep
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:365
switch_core_session_
run() OpenZAP/1:1/5597332791 Running State Change CS_CONSUME_MEDIA
2008-06-21 12:12:43 [DEBUG] switch_core_state_machine.c:442
switch_core_session_
run() (OpenZAP/1:1/5597332791) State CONSUME_MEDIA
2008-06-21 12:12:44 [ERR] zap_isdn.c:589 state_advance() 1:1 STATE
[DIALING]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:987 q931_rx_32() WRITE 58
------------------------------------------------------------------------
--------
[00 01 00 00 08 02 00 02 05 04 03 80 90 a2 18 03 a1 83 81 28 0a 46 72 65
65 53 5
7 49 54 43 48 6c 0c 21 80 38 30 30 35 34 30 39 30 31 31 70 0b a1 35 35
39 37 33
33 32 37 39 31]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:556 zap_isdn_921_23() READ 13
------------------------------------------------------------------------
--------
[08 02 80 02 7d 08 03 81 ab 28 14 01 01]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:284 zap_isdn_931_34() Yay I got
an event!
Type:[7d] Size:[114]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:287 zap_isdn_931_34() Cause ie
present [8
000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:556 zap_isdn_921_23() READ 10
------------------------------------------------------------------------
--------
[08 02 80 02 02 18 03 a9 83 81]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:284 zap_isdn_931_34() Yay I got
an event!
Type:[02] Size:[137]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:287 zap_isdn_931_34() Cause ie
present [8
000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:556 zap_isdn_921_23() READ 9
------------------------------------------------------------------------
--------
[08 02 80 02 03 1e 02 81 88]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:284 zap_isdn_931_34() Yay I got
an event!
Type:[03] Size:[108]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:287 zap_isdn_931_34() Cause ie
present [8
000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:428 zap_isdn_931_34() Cause info
[8000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:434 zap_isdn_931_34() PROGRESS
message wi
th cause value of '0'
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:556 zap_isdn_921_23() READ 13
------------------------------------------------------------------------
--------
[08 02 80 02 03 08 02 81 91 1e 02 81 88]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:284 zap_isdn_931_34() Yay I got
an event!
Type:[03] Size:[115]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:287 zap_isdn_931_34() Cause ie
present [8
000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:428 zap_isdn_931_34() Cause info
[8000]
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:434 zap_isdn_931_34() PROGRESS
message wi
th cause value of '17'
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:436 zap_isdn_931_34() Changing
state on 1
:1 from DIALING to TERMINATING
2008-06-21 12:12:44 [ERR] zap_isdn.c:589 state_advance() 1:1 STATE
[TERMINATING]
API CALL
[originate({origination_caller_id_number=8005409011,dname='Busy',dnum='
5898832',dialednum='5597332791',agentinfo='5898832.2791',bcast='Mikey_te
st'}open
zap/1/a/5597332791 825597332791)] output:
-ERR USER_BUSY
2008-06-21 12:12:44 [DEBUG] zap_isdn.c:987 q931_rx_32() WRITE 21
------------------------------------------------------------------------
--------
[00 01 02 08 08 02 00 02 4d 28 0a 46 72 65 65 53 57 49 54 43 48]
2008-06-21 12:12:44 [DEBUG] switch_core_state_machine.c:442
switch_core_session_
run() (OpenZAP/1:1/5597332791) State CONSUME_MEDIA going to sleep
2008-06-21 12:12:44 [DEBUG] switch_core_state_machine.c:365
switch_core_session_
run() OpenZAP/1:1/5597332791 Running State Change CS_HANGUP
2008-06-21 12:12:44 [DEBUG] switch_core_state_machine.c:393
switch_core_session_
run() (OpenZAP/1:1/5597332791) State HANGUP
freeswitch at freeswitch2.fcnetwork.com> 2008-06-21 12:12:44 [DEBUG]
switch_core_st
ate_machine.c:46 switch_core_standard_on_hangup() Standard HANGUP
OpenZAP/1:1/55
97332791, cause: USER_BUSY
2008-06-21 12:12:44 [DEBUG] switch_core_state_machine.c:393
switch_core_session_
run() (OpenZAP/1:1/5597332791) State HANGUP going to sleep
2008-06-21 12:12:45 [DEBUG] zap_isdn.c:556 zap_isdn_921_23() READ 10
------------------------------------------------------------------------
--------
[08 02 80 02 5a 08 03 81 e0 08]
2008-06-21 12:12:45 [DEBUG] zap_isdn.c:284 zap_isdn_931_34() Yay I got
an event!
Type:[5a] Size:[110]
2008-06-21 12:12:45 [DEBUG] zap_isdn.c:287 zap_isdn_931_34() Cause ie
present [8
000]
2008-06-21 12:12:45 [DEBUG] zap_isdn.c:386 zap_isdn_931_34() Changing
state on 1
:1 from TERMINATING to HANGUP_COMPLETE
2008-06-21 12:12:45 [ERR] zap_isdn.c:589 state_advance() 1:1 STATE
[HANGUP_COMPL
ETE]
2008-06-21 12:12:45 [DEBUG] zap_isdn.c:761 state_advance() Changing
state on 1:1
from HANGUP_COMPLETE to DOWN
2008-06-21 12:12:45 [ERR] zap_isdn.c:589 state_advance() 1:1 STATE
[DOWN]
2008-06-21 12:12:45 [DEBUG] zap_io.c:1071 zap_channel_done() channel
done 1:1
Anyway, I thought I'd share. If you think this is jira-worthy I'll post
a new issue, otherwise if you know why the gen->Cause is always showing
up as present I'd be happy to fix and test. For the record, the test is
a bitwise AND, where the "cause" value is ANDed against 0x8000. Since
the gen->Cause value seems always to be 0x8000, whether it is present or
not, it always comes up as true.
Thanks for your thoughts and suggestions.
-MC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20080621/96633be4/attachment-0001.html
More information about the Freeswitch-dev
mailing list