⬆️ ⬇️

Telephony on Cisco (Call Manager Express) - Part 1

Starting to study CVoice (642-436) I decided to post some labs in the form of articles. The first part is such a “Hello World”, a call from one phone to another.





1. Components of the circuit



The scheme is assembled on the basis of the Cisco 1751-V router, the standard version of which is sold with 64 MB of memory and 32 MB of flash.



The first problem I encountered was a lack of memory. For any IOS version 12.4 with voice support, 96 MB was required, although no one bothered to run 12.3, but I still wanted to do the latter.

As a result, a 64 MB memory bar was added to the router and a VIC-2FXS module was installed for connecting analog telephone sets.



The second problem, which took a little more time - when loading did not see the module VIC-2FXS. As it turned out after reading the docks, for the operation of analog voice modules, you also need to add a DSP signal processor board to the router. I had to add a PVDM-256k-4 bar with one DSP on board. After all these frauds, the router finally booted up and normally saw the module.

')

Two LinkSys CIT-300 and CIT-400 DECT / Skype phones were used as analog phones.



2. Basic router configuration



For basic configuration, just enter a few commands with which we will create dial-peers and determine which numbering will be used:

# 301 2/0

dial-peer voice 1 pots

destination-pattern 301

port 2/0

!

# 302 2/1

dial-peer voice 2 pots

destination-pattern 302

port 2/1



In fact, after these commands, you can call from one phone to another according to the configured numbering.



3. Advanced Settings



For different countries there are different frequencies of signals KPV, "Busy" and others. These parameters can be configured for the ports of the router. For example, change the settings of signals on one of the ports:

voice-port 2/0

cptone RU

# -



Comparing the signal KPV on two phones, you can easily notice the difference.



Another interesting feature is caller ID identification. By default, this function is disabled, you can enable it as follows:



voice-port 2/0

# Caller-ID

caller-id enable

#

station-id name vasya_pupkin

!

voice-port 2/1

caller-id enable

station-id name 302

!


There are two methods for transmitting Caller-ID, one of which is to transmit a number using DTMF, the second is in digital form using frequency modulation (FSK) at 1200 bps. Accordingly, it is possible to receive text data only with the help of the second number.

Surprisingly, both my phones request this information from the PBX (in this case, the router), but only displays the number CIT-400







4. Verifying system performance



So the simplest thing is to simply call from one phone to another.

What else can you check:



The show voice port summary command shows the status of voice ports:

CME#sh voice port summary

IN OUT

PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC

=============== == ============ ===== ==== ======== ======== ==

2/0 -- fxs-ls up up off-hook idle y

2/1 -- fxs-ls up dorm on-hook idle y



PWR FAILOVER PORT PSTN FAILOVER PORT

================= ==================



Listing shows interface numbers as well as their current status.



The show diag command will show the status of the modules and cards of the router



To find problems in establishing a connection, you can use the commands:

debug voip dialpeer - step-by-step analysis of dial peers

debug vpm signal - debug alarm messages.



Just here I was able to see that my CIT-300 is also requesting a Caller-ID, but for some reason it does not display it:



CME#debug vpm signal

Voice Port Module signaling debugging is enabled

CME#

*Mar 1 02:06:55.963: htsp_process_event: [2/1, FXSLS_ONHOOK, E_DSP_SIG_1100]fxsls_onhook_offhook htsp_setup_ind

*Mar 1 02:06:55.963: [2/1] get_local_station_id calling num= calling name=302 calling time=03/01 02:06 orig called=

*Mar 1 02:06:55.983: htsp_process_event: [2/1, FXSLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK]fxsls_check_auto_call

*Mar 1 02:06:56.463: htsp_digit_ready(2/1): digit = 3

*Mar 1 02:06:56.615: htsp_digit_ready(2/1): digit = 0

*Mar 1 02:06:56.783: htsp_digit_ready(2/1): digit = 1

*Mar 1 02:06:56.795: htsp_timer_stop3

*Mar 1 02:06:56.795: htsp_process_event: [2/1, FXSLS_OFFHOOK, E_HTSP_PROCEEDING]htsp_setup_req

*Mar 1 02:06:56.803: htsp_process_event: [2/0, FXSLS_ONHOOK, E_HTSP_SETUP_REQ]fxsls_onhook_setuphtsp_progress

*Mar 1 02:06:56.803: [2/0] set signal state = 0x0 timestamp = 0

*Mar 1 02:06:56.803: [2/0] htsp_set_caller_id_tx calling num=302 display_info=302 called num=301

*Mar 1 02:06:56.803: [2/0] Caller ID String 80 14 01 08 30 33 30 31 30 32 30 36 02 03 33 30 32 07 03 33 30 32 9E

*Mar 1 02:06:56.807: [2/0] htsp_set_caller_id_tx_time Caller ID:FSK_DURING_RING

*Mar 1 02:06:56.807: [2/0] htsp_start_caller_id_tx string length=23



*Mar 1 02:06:56.819: htsp_call_bridged invoked

*Mar 1 02:06:56.819: htsp_call_bridged invokedhtsp_progress_notify

*Mar 1 02:06:56.827: htsp_process_event: [2/0, FXSLS_WAIT_OFFHOOK, E_HTSP_VOICE_CUT_THROUGH]fxsls_waitoff_voice

*Mar 1 02:06:56.835: htsp_process_event: [2/1, FXSLS_OFFHOOK, E_HTSP_VOICE_CUT_THROUGH]fxsls_voice_cut_thru

*Mar 1 02:06:59.027: htsp_timer_stop3

*Mar 1 02:07:01.679: htsp_process_event: [2/1, FXSLS_OFFHOOK, E_DSP_SIG_0100]fxsls_offhook_onhook, HF duration Max=1000, HF duration Min=150

*Mar 1 02:07:01.679: htsp_timer - 1000 msec

*Mar 1 02:07:02.683: htsp_process_event: [2/1, FXSLS_OFFHOOK, E_HTSP_EVENT_TIMER]fxsls_offhook_timer

*Mar 1 02:07:02.687: htsp_timer_stop3

*Mar 1 02:07:02.703: htsp_process_event: [2/0, FXSLS_WAIT_OFFHOOK, E_HTSP_RELEASE_REQ]fxsls_waitoff_release

*Mar 1 02:07:02.703: [2/0] set signal state = 0x4 timestamp = 0

*Mar 1 02:07:02.715: htsp_process_event: [2/1, FXSLS_WAIT_RELEASE_REQ, E_HTSP_RELEASE_REQ]fxsls_waitrls_req_rls

*Mar 1 02:07:02.715: [2/1] set signal state = 0x4 timestamp = 0

*Mar 1 02:07:02.715: [2/1] set signal state = 0x4 timestamp = 0

*Mar 1 02:07:02.719: htsp_process_event: [2/1, FXSLS_ONHOOK, E_DSP_SIG_0100]fxsls_onhook_onhook




There is another interesting semi-documentary command that allows you to simulate a call to any of the dial-peers. The csim start 301 team made my 301 telephone ring. This command is driven in from the privileged mode and is not visible when using the contextual help. Nevertheless, the command works, and the caller's field remains empty.



You can use the show call active voice command to view active sessions.



This is probably all. Thanks for attention.



upd



If you have a VIC-2DID module, then when you pick up the handset you will not hear the dial tone, and when dialing the number there will be short beeps.

To solve the problem, you need to drive the command:

Router(config)#voice-port 2/0

Router(config-voiceport)#no signal did

Source: https://habr.com/ru/post/95802/



All Articles