Need TCL example

Unanswered Question
Mar 22nd, 2010
User Badges:

Hi guys,

I am faced the following issue with CME system. My customer has a specific international traffic flow scheme. All local traffic flows by regular dialpeers. But to place international call there is a need to dial a specific local number where the call is authenticated by ANI then after the tone an international number must be dialed without an outside access code. I believe this can be done by TCL script. And I believe that it is a pretty simple task. But I have no experience in TCL programming.

Could somebody provide me with any example close to my task?




  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
Aaron Harrison Tue, 03/23/2010 - 01:21
User Badges:
  • Super Bronze, 10000 points or more
  • Community Spotlight Award,

    Member's Choice, May 2015


Unless you're an experienced developer you will find there is a lot to learn if you want to put some TCL together.

I would suggest that you try downloading the scripts made available by Cisco and having a look through them; if you feel you can understand them, then have a go yourself. Otherwise try engaging someone to do this for you...

1) Try - there are several examples here as well as documentation about TCL.

2) Try downloading the B-ACD for CME; this is made up of a couple of TCL scripts.



Please rate helpful posts...

paolo bevilacqua Tue, 03/23/2010 - 09:58
User Badges:
  • Super Gold, 25000 points or more
  • Hall of Fame,

    Founding Member

That is what the clid_xxx scripts do, they are already builtin in IOS image

sh call application voice summary

But you must be able to configure them correctly.

Beside, there are easier alternative for blocking international calls.

yuriy.shafirin Wed, 03/24/2010 - 02:23
User Badges:

Thank you guys for replies.

I know about developer network, b-acd and builtin scripts.

May be I've explained my issue not so clear. My customer have to dial a local number and then after the tone dial a destination international number. Before I installed CME he had Avaya and there was a builtin feature to make it transparent to user. He needed just to dial the destination international number and the rest was made by the PBX.

Now I need to do the same on CME using TCL because there is no built in feature in Cisco IOS.

I need some TCL example like this:

1. Receive incoming leg from IP Phone. Destination number is international.

2. Place call to local number and wait for the dialtone.

3. Send international number digit by digit without outside access code.

4. Connect two legs.



Aaron Harrison Wed, 03/24/2010 - 02:31
User Badges:
  • Super Bronze, 10000 points or more
  • Community Spotlight Award,

    Member's Choice, May 2015


Sounds like the 'example' you are asking for is what I would describe as your 'solution'.

1) You will have a dial peer that matches the international number(s) and links it to your application

2) Application will make a call to a number and detect dialtone

3) Application will then send out some DTMF

4) Application will join two call legs

You should be able to find examples of each of these last three functions in the resources suggested, and put it together yourself...


yuriy.shafirin Wed, 03/31/2010 - 02:19
User Badges:

Hi guys,

I have some progress in TCL. But I am still facing the debugging issues. Could somebody help me in debugging? Couple of days I can't overcome the following.

I see that debugs look different. It depens on wherther I dial the number digit by digit or I press Redial on IPPhone. Or it depends on the speed I enter the digits. May be it depends on something else. I don't know. Once I even placed the successfull call. But couldn't reproduce it. What is true - it works unstable and call disconnects. Three debugs are attached.

My lab environment is the following:


IPPhone1 - 5102

CME2 number - 4000

IPPhone2 - 5212009

CME1 config:


service script1 flash:script1.tcl

dial-peer voice 4000 pots
destination-pattern 4000
port 0/1/0:15


application script1


Thank you.


yuriy.shafirin Fri, 04/02/2010 - 08:33
User Badges:

Hi guys,

I have some progress on my script but still facing the issues. I found out that I have to insert pauses between digits sent by DTMF. So I've redesigned my script to have the following logic:

1. Acknowledge a call setup, provide a dial tone and collect digits. And transfer to GOTDIGITS state.

2. Check whether the call is international or not. If it is not just place the call to destination and proceed with CALLACTIVE state. If it is international place the call to the local service number. And transfer to PLACECALL state.

3. After the call setup done check if status it ls_000 (call is active or was successful). If it is not - close the call. If it is - play 2 seconds silence. And transfer to PAUSESENT state.

4. Wait for ev_media_done (after playing 2 seconds silence) and send first digit. Then play 400 msec silence. Remain in the same state until last digit. Then transfer to CALLACTIVE state.

Fourth proc should do "media play leg_outgoing %s400" and the ev_media_done after it should trigger it again until all digits are sent. But this is not happen. According to debug script fails on third proc trying to play 2 seconds silence. Specifically it doesn't like "media play leg_outgoing %s2000" step.

I've attached both current version of the script and output of "debug voip application". If somebody has any ideas I would appreciate it.



Hi Guys,

I have similar kind of issue that can be resolved by TCL Script.

I do not have hands on on TCL , please help me to do so, however somehow by consulting books and forum, I have Made 1...

Descriptions are as below-


I have integrateged Cisco-Genensys through CTI application user and the  integration is working fine.

Here in Genensys , Genesys dials like this "xxxxxxxxAAAAAAyyyy" 
where xxxxxxxx is phone number of the customer, yyyy is the extension  number of the customer 
and AAAAAA is the saparator between phone number and extension number.

Genesys dials the whole string like xxxxxxxxAAAAAAyyyy and passed it 
as blind transfer to Cisco Call Manager,
and I have created 1 translatation pattern in Voice Gateway which 
translates AAAAAA to ",,,,,,".  and there is 1 SIP Trunk beween CUCM and  Voice Gateway,
in Voice Gateway i made dial-peer configuration below

dial-peer voice 1003 pots
destination-pattern xxxxxxxx,,,,,,XXXX
port 0/0/1:15
forward-digits all ,

Now the objective is to dial-out xxxxxxxx then wait for 6 seconds (since  it is 6 ",")
and then send XXXX as a DTMF (caller entered digits).
But as per the presnt configuration it is not able to connect the call  and call drops.

Please let me know how to achive this, what else configuration is left  in Voice Gateway and CUCM.

CUCM version-

JTAPI Current version 6.1(2.1000)-12  

CCM-TServer version 7.6

License Manager Version 9.5 

Voice Gateway Protocol- H.323


TCL can be helpful here so I tired to make 1 TCL script and the dial peers are as below and TCL is enclosed.

dial-peer voice 1003 pots
destination-pattern xxxxxxxx

service comma

port 0/0/1:15
forward-digits all ,

Appreciate your help,





This Discussion