Custom IVR etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Custom IVR etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Mayıs 2012 Perşembe

Araya Kısaca AGI Girelim (Asterisk Gateway Interface))


Asteriskle ilgili gelen istekler üzerine;

Asteriskle kendi ivr senaryonuzu başka bir pcde koşturmak yönlendirmek isterseniz Agi kullanmalısınız.
Agi sizin beliryeceğiniz tcp ip servera bağlanıp size veri gönderip komut alma yöntemiyle çalışır. Asterisk.Net kütüphanesi içerisinde örneği bulabilirsiniz. Net olarak anlatılmayan yapmanız gereken extension ayarı aşağıdadır.

extensions_custom.conf dosyası(asteriski reload etmeyi unutmayın 192.168.5.107 ip asteriskin bağlanmasını istediğimiz ip)


; This file contains the contexts the agents login for the module call center.

; and contains the context conferences for module conferences of elastix 1.0.
[from-internal-custom]
exten => 1234,1,Playback(demo-congrats) ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup
include => weather-wakeup
include => ext-test
include => customivr

[agentlogin]
exten => _*8888.,1,Set(AGENTNUMBER=${EXTEN:5})
exten => _*8888.,n,NoOp(AgentNumber is ${AGENTNUMBER})
exten => _*8888.,n,AgentLogin(${AGENTNUMBER})
exten => _*8888.,n,Hangup()
[mm-announce]
exten => 9999,1,Set(CALLERID(name)="MMGETOUT")
exten => 9999,n,Answer
exten => 9999,n,Playback(conf-will-end-in)
exten => 9999,n,Playback(digits/5)
exten => 9999,n,Playback(minutes)
exten => 9999,n,Hangup

[conferences]
;Used by cbEnd script to play end of conference warning
exten => 5555,1,Answer
exten => 5555,n,Wait(3)
exten => 5555,n,CBMysql()
exten => 5555,n,Hangup

[calendar-event]
exten => _*7899,1,Answer
exten => _*7899,2,Playback(${FILE_CALL})
exten => _*7899,3,Wait(2)
exten => _*7899,4,Hangup()

[weather-wakeup]
exten => *61,1,Answer 
exten => *61,2,AGI(nv-weather.php) 
exten => *61,3,Hangup 
exten => *62,1,Answer 
exten => *62,2,AGI(wakeup.php) 
exten => *62,3,Hangup 

[ext-test]
exten => 122,1,AGI(test.php)
exten => 122,n,hangup()

[customivr]
exten => 200,1,AGI(agi://192.168.5.107/customivr)
exten => 200,2,Hangup()


Asterisk.Net Proje Ayarları 

namespace Asterisk.NET.Test
{
class Program
{
const string DEV_HOST = "192.168.5.107";
const int ASTERISK_PORT = 5038;//ami portu karıştırmayın agi portu 4873 tür.
const string ASTERISK_HOST = "192.168.5.100";
        const string ASTERISK_LOGINNAME = "amiuser";
const string ASTERISK_LOGINPWD = "123456";


Ayarları yapıp programı çalıştırdığınızda 200 nolu dahiliyi arayıp ivr akışının örnek projede olduğunu göreceksiniz. Yönetimi bu programla yapabieceğiniz gibi kendi geliştireceğiniz server socket bir programla da yapabilirsiniz.
Agi komutlarına http://www.voip-info.org/wiki/view/Asterisk+AGI den erişebilirsiniz.

Örneği Visual Studio 2005 express ile derledim.



Delphi örneği