Call monitoring

Hi to all,

I am a student of Information Technology Engineering at the University in Italy.

As part of the thesis program I’m doing research about the usage of PBX applications in call center.

I’d like to ask some information about performing an integration between a PBX and an external quality monitoring software.

My goal is to select a group of user ( operators users ) who can perform outgoing call and receive incoming call through Asterisk PBX, for these users I’d like to perform analysis on call using external quality monitoring software.

For each call made or received by this user, I’d like to be able to:

• detect when call is placed or call is received.
This should be done from external software running on external server.
For this steps I’d like to connect to Asterisk CLI and monitor events, so I can intercept call placed by user and call received by user. I can implement a status monitor of PBX for this restricted group of user only.

• get audio stream of call in separate channel ( one channel for each party ).
When call is intercepted, I’d like to get audio stream of this call, this should be made automatic so my goal is intercept call placed or received as indicate in previous steps, after connect to this call and get separate audio channel one for each party of the call.

I’d like to ask your support for complete the task, coI’ve read some guide related to ChanSpy I’d like to ask if this tools could be suitable for my scope.
Thank you very much for your help.

Regards
Maurizio

First have a look at this:

wiki.asterisk.org/wiki/display/ … +%28AMI%29

:wink:

Thank you very much for your answer!
I’d like to ask some other help related to this case.
As suggested I’ve take a look at Asterisk Manager API.

I’ve been able to intercept the call, and record stream into different file as required.
For accomplish this task I’ve run following command:

Action: login
Username: admin
Secret: my_password

Action: Events
EventMask: call

When the call is answer I retrieve an information that inform of channel name
I can run following code for record audio stream as separate file.

ACTION: Monitor
Channel: Local/201@from-queue-e28f;1
File: /mnt/tmp_wav_folder/mg
Mix: 1

Now I can found two wav files: mg-in.wav and mg-out-wav each of them contains separate audio stream.

My goal is to access real time to audio stream produced by these file in RAW format, from external application running on separate server ( SERVER_A )

I’ve share directory:
mount -t cifs //SERVER_A/tmp_wav_folder /mnt/tmp_wav_folder -o username=myUser,password=myPassword

Now I can see two file from external server ( SERVER_A ) but stream is write following file system write cache, so become problematic fo me access to files from SERVER_A in reading when Asterisk Server is writing on it. I’d kindly like to ask if could be possible stream WAV file content to network instead of write it to file, so I’d like to create a pipe between two server and stream audio raw separated for each channel.

I’d kindly like to ask if someone could suggest me a way for accomplish this task.

Thank you very much for your help!

Bye
Maurizio