[asterisk-users] External callerid issues using Q931 against Toshiba Strata
Richard Mudgett
rmudgett at digium.com
Fri Mar 16 10:43:02 CDT 2012
<snip>
> >> pri intense debug:
> >> < TEI: 0 State 7(Multi-frame established)
> >> < V(A)=31, V(S)=31, V(R)=42
> >> < K=7, RC=0, l3_initiated=0, reject_except=0, ack_pend=0
> >> < T200_id=0, N200=3, T203_id=8192
> >> < [ 00 01 54 3e 08 02 01 b3 62 1c 66 9f aa 06 80 01 00 82 01 00 a1
> >> 31
> >> 02 02 01 3a 02 01 0c 30 28 0a 01 01 a0 0f 80 0a 35 35 35 35 35 35
> >> 31
> >> 36 33 31 0a 01 00 80 0f 41 41 41 20 49 54 2d 44 41 54 41 00 00 00
> >> 00
> >> 0a 01 01 a1 28 02 02 01 3b 02 01 55 30 1f 86 01 00 a7 1a 06 0a 31
> >> 33
> >> 31 32 32 31 35 35 35 35 30 0c 81 01 07 8c 04 39 34 31 31 95 01 00
> >> ]
> >> < Informational frame:
> >> < SAPI: 00 C/R: 0 EA: 0
> >> < TEI: 000 EA: 1
> >> < N(S): 042 0: 0
> >> < N(R): 031 P: 0
> >> < 109 bytes of data
> >> < Protocol Discriminator: Q.931 (8) len=109
> >> < TEI=0 Call Ref: len= 2 (reference 435/0x1B3) (Sent from
> >> originator)
> >> < Message Type: FACILITY (98)
> >> < [1c 66 9f aa 06 80 01 00 82 01 00 a1 31 02 02 01 3a 02 01 0c 30
> >> 28
> >> 0a 01 01 a0 0f 80 0a 35 35 35 35 35 35 31 36 33 31 0a 01 00 80 0f
> >> 41
> >> 41 41 20 49 54 2d 44 41 54 41 00 00 00 00 0a 01 01 a1 28 02 02 01
> >> 3b
> >> 02 01 55 30 1f 86 01 00 a7 1a 06 0a 31 33 31 32 32 31 35 35 35 35
> >> 30
> >> 0c 81 01 07 8c 04 39 34 31 31 95 01 00]
> >> < Facility (len=104, codeset=0) [ 0x9F, 0xAA, 0x06, 0x80, 0x01,
> >> 0x00,
> >> 0x82, 0x01, 0x00, 0xA1, '1', 0x02, 0x02, 0x01, ':', 0x02, 0x01,
> >> 0x0C,
> >> '0(', 0x0A, 0x01, 0x01, 0xA0, 0x0F, 0x80, 0x0A, '5555551631',
> >> 0x0A,
> >> 0x01, 0x00, 0x80, 0x0F, 'AAA IT-DATA', 0x00, 0x00, 0x00, 0x00,
> >> 0x0A,
> >> 0x01, 0x01, 0xA1, '(', 0x02, 0x02, 0x01, ';', 0x02, 0x01, 'U0',
> >> 0x1F,
> >> 0x86, 0x01, 0x00, 0xA7, 0x1A, 0x06, 0x0A, '13122155550', 0x0C,
> >> 0x81,
> >> 0x01, 0x07, 0x8C, 0x04, '9411', 0x95, 0x01, 0x00 ]
> >> -- Got ACK for N(S)=31 to (but not including) N(S)=31
> >> -- T200 requested to stop when not started
> >> T203 requested to start without stopping first
> >> -- Starting T203 timer
> >> Received message for call 0x7f5020283b80 on link 0xb2f010 TEI/SAPI
> >> 0/0
> >> -- Processing IE 28 (cs0, Facility)
> >> -- Delayed processing IE 28 (cs0, Facility)
> >> ASN.1 dump
> >> Context Specific/C [10 0x0A] <AA> Len:6 <06>
> >> Context Specific [0 0x00] <80> Len:1 <01>
> >> <00> - "~"
> >> Context Specific [2 0x02] <82> Len:1 <01>
> >> <00> - "~"
> >> Context Specific/C [1 0x01] <A1> Len:49 <31>
> >> Integer(2 0x02) <02> Len:2 <02>
> >> <01 3A> - "~:"
> >> Integer(2 0x02) <02> Len:1 <01>
> >> <0C> - "~"
> >> Sequence/C(48 0x30) <30> Len:40 <28>
> >> Enumerated(10 0x0A) <0A> Len:1 <01>
> >> <01> - "~"
> >> Context Specific/C [0 0x00] <A0> Len:15 <0F>
> >> Context Specific [0 0x00] <80> Len:10 <0A>
> >> <35 35 35 35 35 35 31 36-33 31> - "5555551631"
> >> Enumerated(10 0x0A) <0A> Len:1 <01>
> >> <00> - "~"
> >> Context Specific [0 0x00] <80> Len:15 <0F>
> >> <41 41 41 20 49 54 2D 44-41 54 41 00 00 00 00> - "AAA
> >> IT-DATA~~~~"
> >> Enumerated(10 0x0A) <0A> Len:1 <01>
> >> <01> - "~"
> >> Context Specific/C [1 0x01] <A1> Len:40 <28>
> >> Integer(2 0x02) <02> Len:2 <02>
> >> <01 3B> - "~;"
> >> Integer(2 0x02) <02> Len:1 <01>
> >> <55> - "U"
> >> Sequence/C(48 0x30) <30> Len:31 <1F>
> >> Context Specific [6 0x06] <86> Len:1 <01>
> >> <00> - "~"
> >> Context Specific/C [7 0x07] <A7> Len:26 <1A>
> >> OID(6 0x06) <06> Len:10 <0A>
> >> <31 33 31 32 32 31 35 35-35 35> - "1312215555"
> >> Sequence/C(48 0x30) <30> Len:12 <0C>
> >> Context Specific [1 0x01] <81> Len:1 <01>
> >> <07> - "~"
> >> Context Specific [12 0x0C] <8C> Len:4 <04>
> >> <39 34 31 31> - "9411"
> >> Context Specific [21 0x15] <95> Len:1 <01>
> >> <00> - "~"
> >> ASN.1 end
> >> nfe NetworkFacilityExtension Context Specific/C [10 0x0A]
> >> sourceEntity Context Specific [0 0x00] = 0 0x0000
> >> destinationEntity Context Specific [2 0x02] = 0 0x0000
> >> INVOKE Component Context Specific/C [1 0x01]
> >> invokeId Integer(2 0x02) = 314 0x013A
> >> operationValue Integer(2 0x02) = 12 0x000C
> >> operationValue = ROSE_QSIG_CallTransferComplete
> >> CallTransferComplete Sequence/C(48 0x30)
> >> endDesignation Enumerated(10 0x0A) = 1 0x0001
> >> redirectionNumber PresentedNumberScreened
> >> presentationAllowedNumber NumberScreened Context Specific/C [0
> >> 0x00]
> >> partyNumber PartyNumber
> >> unknownPartyNumber Context Specific [0 0x00] = "5555551631"
> >> screeningIndicator Enumerated(10 0x0A) = 0 0x0000
> >> redirectionName Name
> >> namePresentationAllowedSimple Context Specific [0 0x00] =
> >> <41 41 41 20 49 54 2D 44-41 54 41 00 00 00 00> - "AAA
> >> IT-DATA~~~~"
> >> callStatus Enumerated(10 0x0A) = 1 0x0001
> >> INVOKE Component Context Specific/C [1 0x01]
> >> invokeId Integer(2 0x02) = 315 0x013B
> >> operationValue Integer(2 0x02) = 85 0x0055
> >> operationValue = ROSE_Unknown
> >> Skipping unused constructed component octets!
> >> !! ROSE invoke operation not handled on switchtype:Q.SIG switch!
> >> ROSE_Unknown
<snip>
> I'm looking for the information contained in the
> ROSE_QSIG_CallTransferComplete section. I have attached a complete
> log
> of the call (with intense debug on unfortunately). An additional
> note:
>
> 1. The Strata system initially sends through a virtual internal
> extension number ('1607' in the log) as the originating number. In
> the
> dial plan I immediately play back a ringing sound to the Strata which
> causes it to then send through the real external callerid
> information.
> As such my original email was a bit off the mark, I get a blank
> callerid name and the callerid number is the virtual internal
> extension. Apologies for the confusion.
The ROSE_QSIG_CallTransferComplete message has the callStatus set to 1
which indicates that the peer is ringing. Libpri is waiting for a
ROSE_QSIG_CallTransferActive to post the connected line information
because the ROSE_QSIG_CallTransferComplete connected line information
may not have the correct presentation value available. I suspect
that the Strata is sending the wrong value for that parameter because
it seems to be telling Asterisk that it is ringing instead.
You could try this hack:
Index: pri_facility.c
===================================================================
--- pri_facility.c (revision 2283)
+++ pri_facility.c (working copy)
@@ -5194,12 +5194,7 @@
*/
q931_party_subaddress_init(&call->remote_id.subaddress);
- if (invoke->args.qsig.CallTransferComplete.call_status == 1) {
- /* The remote party for the transfer has not answered yet. */
- call->incoming_ct_state = INCOMING_CT_STATE_EXPECT_CT_ACTIVE;
- } else {
- call->incoming_ct_state = INCOMING_CT_STATE_POST_CONNECTED_LINE;
- }
+ call->incoming_ct_state = INCOMING_CT_STATE_POST_CONNECTED_LINE;
/* Send our subaddress back if we have one. */
if (call->local_id.subaddress.valid) {
Richard
More information about the asterisk-users
mailing list