[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