Asterisk Advanced Message Queue Protocol
Debian 8 "Jessie" Rabbitmq install
Install Erlang
wget -O - "https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc" | apt-key add - apt-get update apt-get install erlang-nox
- /etc/apt/sources.list.d/bintray.erlang.list
deb https://dl.bintray.com/rabbitmq/debian jessie erlang
Install Rabbitmq
echo "deb https://dl.bintray.com/rabbitmq/debian jessie main" | tee /etc/apt/sources.list.d/bintray.rabbitmq.list wget -O - "https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc" | apt-key add - apt-get update apt-get install rabbitmq-server
- /etc/apt/sources.list.d/bintray.rabbitmq.list
deb https://dl.bintray.com/rabbitmq/debian jessie main
HTTP Api Enable
rabbitmq-plugins enable rabbitmq_management
Test HTTP Api
curl -i -u guest:guest http://localhost:15672/api/vhosts
Web UI
Create User
rabbitmqctl add_user admin password rabbitmqctl set_user_tags admin administrator rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Open port 15672
Asterisk res_amqp & res_stasis_amqp install
res_amqp.so
apt-get install librabbitmq-dev git clone https://github.com/wazo-pbx/wazo-res-amqp.git cd /usr/src/wazo-res-amqp/ make make install make samples cp /usr/src/wazo-res-amqp/documentation/res_amqp_config-en_US.xml /var/lib/asterisk/documentation/thirdparty/
res_stasis_amqp.so
git clone https://github.com/wazo-pbx/wazo-res-stasis-amqp.git cp -r /usr/src/wazo-res-amqp/asterisk /usr/src/wazo-res-stasis-amqp/ cd /usr/src/wazo-res-stasis-amqp/ make make install make samples cp /usr/src/wazo-res-stasis-amqp/documentation/res_stasis_amqp_config-en_US.xml /var/lib/asterisk/documentation/thirdparty/
/etc/asterisk/amqp.conf
[general] enabled = yes ; Set to no to disable [bunny] type = connection url = amqp://localhost ; amqp://[$USERNAME@]$HOST[:$PORT][/$VHOST] ; username defaults to guest ; port defaults to 5672 ; vhost defaults to / ;password = ; Password to use for login ; defaults to guest ;max_frame_bytes = ; Maximum frame size, in bytes; defaults to ; AMQP_DEFAULT_FRAME_SIZE (131072, or 128KB) ;heartbeat_seconds = ; number of seconds between heartbeat frames ; 0 disables hearbeats; defaults to ; AMQP_DEFAULT_HEARTBEAT (0)
/etc/asterisk/stasis_amqp.conf
[global] connection = bunny ; Connection name in amqp.conf ;queue = ; Queue name to publish to; defaults to asterisk_cdr exchange = amq.topic ; Exchange to publish to; defaults to empty string
asterisk
Check res_stasis & app_stasis
*CLI> module show like stasis Module Description Use Count Status Support Level app_stasis.so Stasis dialplan application 0 Running core res_stasis.so Stasis application support 1 Running core
Load res_amqp.so
*CLI> module load res_amqp.so Loaded res_amqp.so Loaded res_amqp.so => (AMQP Interface)
Load res_stasis_amqp.so (requires an existing connection with rabbitmq )
*CLI> module load res_stasis_amqp.so Loaded res_stasis_amqp.so == Parsing '/etc/asterisk/stasis_amqp.conf': Found Loaded res_stasis_amqp.so => (Send all Stasis messages to AMQP)
*CLI> module show like amqp Module Description Use Count Status Support Level res_amqp.so AMQP Interface 0 Running core res_stasis_amqp.so Send all Stasis messages to AMQP 0 Running extended 2 modules loaded
Asterisk AMQP Exchange
Asterisk Stasis Channel Event
Asterisk Stasis AMI Event
- Enter queue: QueueCallerJoin
- Agent ringigng: AgentCalled
- Agent no answer for timeout: AgentRingNoAnswer
- Caller Leave Queue: QueueCallerAbandon, QueueCallerLeave
Links
asterisk
rabbitmq
Только авторизованные участники могут оставлять комментарии.