Summary:ASTERISK-15752: Catch privateNumberDigits from h323 pdu
Reporter:Etienne (etn)Labels:
Date Opened:2010-03-05 07:40:30.000-0600Date Closed:2010-04-12 14:02:38
Versions:Frequency of
Environment:Attachments:( 0) capture.log
( 1) h323_from_tshark.txt
( 2) h323_log
Description:I have an Avaya S8700 Gateway linked with an H323 trunk to my asterisk 1.6.11 with openh323-1.18-0.

I try to catch privateNumberDigits in my Asterisk from h323 pdu but i can't find it.

In fact This information seems to be decoded by openh323:

# grep -r "privateNumberDigits" openh323_v1_18_0/
openh323_v1_18_0/include/h225.h:    H225_NumberDigits m_privateNumberDigits;
openh323_v1_18_0/src/h323pdu.cxx:        number.m_privateNumberDigits = name.Mid(sizeof(PrivatePartyPrefix)-1);
openh323_v1_18_0/src/h323pdu.cxx:          return PrivatePartyPrefix + (PString)number.m_privateNumberDigits;
openh323_v1_18_0/src/h225_2.cxx:  strm << setw(indent+22) << "privateNumberDigits = " << setprecision(indent) << m_privateNumberDigits << '\n';
openh323_v1_18_0/src/h225_2.cxx:  if ((result = m_privateNumberDigits.Compare(other.m_privateNumberDigits)) != EqualTo)
openh323_v1_18_0/src/h225_2.cxx:  length += m_privateNumberDigits.GetObjectLength();
openh323_v1_18_0/src/h225_2.cxx:  if (!m_privateNumberDigits.Decode(strm))
openh323_v1_18_0/src/h225_2.cxx:  m_privateNumberDigits.Encode(strm);
openh323_v1_18_0/src/h225.asn:  privateNumberDigits     NumberDigits

Is there a way to get back to asterisk this info?


Comments:By: Leif Madsen (lmadsen) 2010-03-08 09:44:31.000-0600

I'd suggest you try the OpenH323 channel driver (via -addons) as that is now being maintained. All the other channel drivers are at this point unmaintained and thus will either work or not work, depending on your topology and configuration.

By: Etienne (etn) 2010-03-18 12:11:38

I just make a model with the following version:
dahdi-linux 2.2.1

On the other side i have an Avaya Communication Manager 3.1

My test was:
- Call an Avaya extension 40075 from a 2nd avaya extension 44232
- Forward 44232 to the asterisk extension 58000

In parallel i made a tcpdump capture


- trace.log: h323 communication between avaya card and Asterisk
- h323_log: h323_log file generate by Asterisk

You will find in the trace.log " privateNumberDigits: 40075" info whereas nothing appears in h323_log.


By: Etienne (etn) 2010-03-22 10:23:44

Do you need other debug?

By: Leif Madsen (lmadsen) 2010-03-24 10:07:53

So you've been testing with the OpenH323 channel driver in -addons?

By: Etienne (etn) 2010-03-24 11:05:38

Yes, exactly

By: Leif Madsen (lmadsen) 2010-03-24 13:44:53

Assigning to may213 for review of this issue. Thanks!

By: Alexander Anikin (may213) 2010-03-25 15:03:01


i don't see any private numbers in log.

may@xxx:~> wget -q -O - 'https://issues.asterisk.org/file_download.php?file_id=25614&type=bug&download' | egrep '(44232|40075)'

I see 44232 in setup packet on h323_log as CallingPartyNumber and it's right for this call, 44232 is originator. i don't see 40075 there also.

about H225PrivatePartyNumber. It's variant of H225PartyNumber which can be part of sourceAddress, destinationAddress, destExtraCallInfo structures. Only one found here destinationAddress which contain 5800.

If you are sure what there must be 40075 please reattach correct log. Best way is to attach tcpdump file from "tcpdump -s1500 tcp and asterisk-ip -i ethX".

By: Etienne (etn) 2010-03-25 15:39:09

Hi may,

sorry, i exported file from wireshark in collapsed mode, i just upload the right version with all packets displayed.


By: Alexander Anikin (may213) 2010-03-25 16:06:25

Ok, seen 40075 in setup packet. But it's in Q-SIG packet and there is nothing for support q-sig in ooh323 stack. And i haven't idea where we can put this info in control frame even if we could extract it from setup packet. Source number is 44232, source name can and must be set from sourceAlias.
It is interesting which number will be displayed on hardware IP phone if you will transfer this call to him?

By: Etienne (etn) 2010-03-25 16:30:09

when you say transfer, you mean transfer from Asterik to ip phone?

So if i resume:
40075 call 44232, call forwarded to Asterik which forward it to a sip extension, that's it?

By: Alexander Anikin (may213) 2010-03-25 16:46:24

No, i mean if you transfer call from 44232 to 40075 to IP phone not to asterisk.
If i understand right in your case there was unattended transfer (or unconditional forward), i.e. what will be displayed on IP phone (or avaya digital phone display) if call from 44232 to 40075 will be forwarded to IP phone (another avaya's extesion)?

By: Etienne (etn) 2010-03-26 04:24:59

I just make test :

40075 has an unconditional forwarded to 40082
44232 call 40075
40082 receive the call and display 44232


By: Alexander Anikin (may213) 2010-03-26 15:05:03

Etienne, asterisk will display same info if you will forward such call to asterisk. There isn't needed any changes or enhancement. But complete support of Q.SIG proto will be hard and long work and i don't think that it's priority task, also i don't known how to put q.sig data to asterisk core.

By: Etienne (etn) 2010-03-29 06:08:52

ok thanks for the feedback, i'll use a dirty solution in order to get back the info in asterisk :o)


By: Alexander Anikin (may213) 2010-04-12 14:00:18

closed due to unresolvable request. Asterisk don't have q.sig support for voip protos.

By: Alexander Anikin (may213) 2010-04-12 14:02:38

feel free to reopen issue if there will be additional info or request for supporting it.