Reading the Facility Callername from a tcl script

Unanswered Question
Oct 15th, 2009
User Badges:

I am looking for a way to read the Callingname in the facility message so that I can pass into


set callInfo(displayInfo)


Basically I'm trying to pass Callername to an ip phone through a TCL script on the gateway during callsetup. This normally gets dropped.


Is there a way to parse these fields in the Facility message?


Thanks ahead of time for any help.


Oct 14 21:59:58.274: ISDN Se0/0/0:23 Q931: RX <- FACILITY pd = 8 callref = 0x03BB

Facility i = 0x9F8B0100A117020101020100800F5452494F4E20574F524C44204E4554

Protocol Profile = Networking Extensions

0xA117020101020100800F5452494F4E20574F524C44204E4554

Component = Invoke component

Invoke Id = 1

Operation = CallingName

Name Presentation Allowed Extended

Name = MY CALLINGNAME

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 1 (1 ratings)
Loading.
kevinbadeen Fri, 10/16/2009 - 19:38
User Badges:

Well.. I'm having to alter an existing script that parsers the calls for fax service before they are being sent to callmanager.


So far I think im in the right direction but I don't know how to use the "object get gtd" properly, if that's even the right approach. Im trying to parse


GEN,y,y,0,JOE BLOW


from the gtd debug below...


Oct 15 16:32:26.543: CNG tone sent

Oct 15 2009 11:32:26 CDT: %ISDN-6-CONNECT: Interface Serial0/0/0:0 is now connected to XXXXXXXXXX N/A

Oct 15 16:32:27.231: ISDN Se0/0/0:23: Built a GTD of size 110 octets for ISDN message type 0x62

Oct 15 16:32:27.231: tsp_ccrawmsg_encap: calling cdapi_find_tsm

Oct 15 16:32:27.231: cdapi_find_tsm: Found Tunnelled Signaling Msg with GTD: PROT_PTYPE_GTD

Oct 15 16:32:27.231: cdapi_find_tsm: Found a gtd msg of length 110:

Oct 15 16:32:27.231: gtd msg = "FAC,

PRN,isdn*,,NI***,

GEN,y,y,0,JOE BLOW ----------------Caller NAME

UFC,GEN,5,fachd,9f8b0100

UFC,GEN,5,inpdu,020101020100"



This is what I have so far...


set DestNum [infotag get evt_dcdigits]

set callInfo(destinationNum) $DestNum


infotag set evt_facility_report gtd

infotag get evt_gtd CallerID


set CallerName [object get gtd CallerID FAC,4,GEN]

set DestNum [infotag get evt_dcdigits]


put "$CallerName"

put "$DestNum"


set callInfo(displayInfo) $CallerName

set callInfo(destinationNum) $DestNum


leg setup $DestNum callInfo leg_incoming


paolo bevilacqua Sun, 10/18/2009 - 09:18
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

Not sure why you are using GTD.


If you're connecting to a regular PRI the command I've indicated above is all what is needed to populate leg_display_info.


At least that is my understanding.

kevinbadeen Mon, 10/19/2009 - 07:20
User Badges:

I've copied some of my config on the gateway.. So what I've been told is that the Calling Name isnt being populated due to the application parsing of the inbound call from the PRI. Is this not accurate?



application

service fax_detect flash:app_fax_detect.2.1.2.3.tcl


dial-peer voice 2 pots

service fax_detect

incoming called-number 7...

direct-inward-dial


voice service voip

fax protocol pass-through g711ulaw

h323

h225 timeout ntf 500

h225 display-ie ccm-compatible

call preserve limit-media-detection



paolo bevilacqua Mon, 10/19/2009 - 08:13
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

Sorry, I don't follow your line of thinking.


In my first reply I've indicated the command needed to decode calling name, you do not have that in the config above.

kevinbadeen Mon, 10/19/2009 - 14:21
User Badges:

Ha :)


From what I've been told and can tell in the traces this is what is happening in my scenario.


PSTN->VG->Application/fax-detect->CM


PSTN and VG sees the calling name come through.. when it gets to CM its missing. I have to read the calling name in from the application and pass it to CM during the leg setup within the application.


Your saying that if I enable qsig it will pass the calling name in the leg setup?

paolo bevilacqua Tue, 10/20/2009 - 06:00
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

It will populate the infotag mentioned above, I'm saying that for the fourth time now.

jsteinberg Mon, 06/07/2010 - 21:13
User Badges:

anyone figure this one out?  I am having the same problem.  I have tried the suggestion 'qsig decode' and it doesn't work for me.

paolo bevilacqua Tue, 06/08/2010 - 22:47
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

Take "debug isdn q931" with "term mon" and post it here.

jsteinberg Wed, 06/09/2010 - 05:36
User Badges:

I don't think you understand our problem.


The problem is that we need to use a TCL script for something else (not caller id name) and when we use the TCL script, it breaks the caller id name (which was working for us before needing to use the TCL script).


I found this link:

http://developer.cisco.com/web/vgapi/forums/-/message_boards/message/1693754


Which confirms the OP's reference to needing to use GTD to map the facility message in the  TCL script.


The relevent CNAM config needed is:


set cname [object get gtd gtd_fac gen.-1.name]



and then:


set callInfo(displayInfo) $cname


when you setup the call transfer.



Adding these lines to the TCL script passes the caller id name from the 2nd facility message into the h323 leg which is what is needed to display the name on the IP phone screen.

paolo bevilacqua Wed, 06/09/2010 - 18:11
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

My understanding is that no matter the protocol, the calling name should be accessed directly by the infotag I have referenced above, as IOS does most of the work for you when configured correctly.


Using GTD as you mentioned to access the facility field is undocumented other than in the link you posted, beside if it's not working why complaining here instead to the person that suggested the tecnique ?


I will confirm my supposition when I will have a chance to lab it.

sscdvp2010 Tue, 09/14/2010 - 02:40
User Badges:

Are you sure this script is really working?

I believe you should use

set cname [object get gtd gtd_fac GEN.-1.name]

instead of

set cname [object get gtd gtd_fac gen.-1.name]

paolo bevilacqua Sun, 12/19/2010 - 09:53
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

sscdvp2010 wrote:


Are you sure this script is really working?

I believe you should use

set cname [object get gtd gtd_fac GEN.-1.name]

instead of

set cname [object get gtd gtd_fac gen.-1.name]


In TCL/IVR,  GTD parameter names are not case sensitve.

paolo bevilacqua Tue, 06/08/2010 - 22:47
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

To put a closure on this.

As I had initially suggested, the calling name is normally available accessing the infotag mentioned above.

However, the serial interface must be configured with " isdn supp-service name calling".

paolo bevilacqua Sun, 12/19/2010 - 09:47
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

Is the person that rated my post above as "1" willng to explain why ?


Because what I wrote is 100% correct and verified, and I challenge you to prove otherwise.

Actions

This Discussion