Xmpp integration with Asterisk
http://gnu-linux.org/xmpp-integration-with-asterisk.html
Xmpp stands for eXtensible Messaging and Presence Protocol, Its a widely used communication protocol. In this blog I will use Openfire an opensource xmpp server.
Asterisk is opensource telephony switching exchange service for linux. In this blog I am using FreePBX install on centos 6.5.
In this blog I assume that user has already install openfire and
asterisk server on linux machines. So I will start with creating a user
in openfire and intregate my opefire server with asterisk server and in
finally we will able to call from sip phone to xmpp client.
Step 1: Creating user in xmpp server
Login to openfire server. You will find the welcome screen as in image below and then click on user/session tab

Now provide the user information and click on create user as in image below.

Step 2: Starting Spark xmpp client
Download spark client on your linux machine.
wget http://www.igniterealtime.org/downloadServlet?filename=spark/spark_2_7_0.tar.gz
untar the file and run spark executable file
tar -xvzf spark_2_7_0.tar.gz
cd spark*
./spark
You will find the spark client starts as in image below.
provide user id, password which you created in openfire server and give server ip.

Now again go to your openfire server and click on session tab you will find status of the user online

Step 3:Enable SIP plugin to openfire
Download the SIP jar file
wget http://www.igniterealtime.org/projects/openfire/plugins/sip.jar
click on Plugins tab and upload your sip.jar file. after some time you will find phone tab inside the server tab
Note The plugin work with openfire version 3.9.3
Step 4: Configure SIP user on asterisk
Now we need to configure sip.conf and extension.conf file to switch the call between asterisk and xmpp client.
sip configuration settings copy paste below code in your sip.conf,
more detail about this you will find in asterisk configuration blog.
[100]
username=100
type=friend
secret=123
record_out=never
record_in=never
qualify=no
port=5060
nat=never
host=dynamic
dtmfmode=rfc2833
call-limit=4
canreinivite=no
disallow=all
allow=all
extension.conf configuration
exten => 100,1,Dial(SIP/100,20)
Now restart your asterisk server
service asterisk restart
The above settings allow sip client to established call to xmpp client which is spark.
Step 5: Configure SIP phone on openfire
On your openfire interface go to Phone tab and then click on add new phone mapping and provide the detail as in image below.
SIP PHONE settings
XMPP username => user name of your openfire user.
SIP username => user name on your asterisk server which we configure in sip.conf
Authorization username => same as SIP username
PASSWORD => password of your SIP user.
SERVER => IP of asterisk server
click on create and you will find the page as below.
successful SIP mapping
Now all the configuration is done, finally you have to login to your spark and sip phone.
Step 6: Make a call from SIP phone
I am using twinkle as my SIP phone now as a dial the extension number
100 which is of my xmpp client . I get a incoming call. check the image
below
incoming call from SIP phone
In the image you will find a box saying incoming call from the SIP user.
Once you accept the call it will get connected .
call accepted
So we successfully integrated XMPP (Openfire) with SIP (Asterisk).
In easy 6 step we have done this.
Xmpp integration with Asterisk的更多相关文章
- XMPP and Asterisk integration
http://www.mundoopensource.com.br/en_page_xmpp_asterisk_pratical_example/ www.mundoopensource.com.br ...
- Github上的原文XMPP环境搭建步骤,英语能力差不多的可以看看
Getting started using XMPPFramework on iOS Here is a post on StackOverflow describing how to install ...
- xmpp muc 群聊协议 4
7. Occupant Use Cases The main actor in a multi-user chat environment is the occupant, who can be sa ...
- [转] Spring Integration 系统集成
[From] http://blog.csdn.net/w_x_z_/article/details/53316618 pring Ingegration 提供了基于Spring的EIP(Enterp ...
- 转 asterisk app命令中文翻译
常规指令 Authenticate:鉴别用户 VMAuthenticate:根据“voicemail.conf”鉴别用户 Curl:接受外接URLs的修复.支持POSTing DUNDiLookup: ...
- xmpp之配置Xcode(1)
介绍 ios上的XMPPFramework你能够在Xcode/iPhoneXMPP 目录找到,它只是实现了XMPP的一小部分功能. 下面主要介绍在开发XMPPFramework ios应用之前的配置工 ...
- 在 Laravel 中使用图片处理库 Integration/Image
系统需求 PHP >= 5.3 Fileinfo Extension GD Library (>=2.0) … or … Imagick PHP extension (>=6.5.7 ...
- 技术笔记:XMPP之openfire+spark+smack
在即时通信这个领域目前只找到一个XMPP协议,在其协议基础上还是有许多成熟的产品,而且是开源的.所以还是想在这个领域多多了解一下. XMPP协议:具体的概念我就不写了,毕竟这东西网上到处是.简单的说就 ...
- 按照Enterprise Integration Pattern搭建服务系统
在前一篇文章中,我们已经对Enterprise Integration Pattern中所包含的各个组成进行了简单地介绍.限于篇幅(20页Word以内),我并没有深入地讨论各个组成.但是如果要真正地按 ...
随机推荐
- Winedt 7.0 Build: 20120321 永久试用方法 WinEdt 7.0 破解
该方法,不是破解. 因为WinEdt试用版与正式版功能无异. 所以,该方法是 通过更新注册表信息,重置安装时间. 也就是重新获取31天的试用期时长. 方法如下: 1.用管理员权限打开CMD. 2.运行 ...
- 前端(js/jquery) 日期和时间戳的转换
一.JavaScript中获取当前时间的时间戳 方法一: var timestamp=Date.parse(new Date()); ====>结果是:1451441086000 注:这种方式精 ...
- Maven3(笔记二)
笔记本二 在Eclipse 中使用Maven 第一节:m2eclipse 插件安装 打开Eclipse,点击菜单Help - > Install New Software 点击Add 按钮N ...
- html-----004
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 关于Java IM的一点资料
微信是腾讯采用自己开发的协议做的,其他市面上很多产品大都是采用XMPP协议,包括米聊在内之前也是这样子. 采用XMPP协议,服务端可以采用OpenFire搭建,客户端有个开源的叫asmack的东西,g ...
- 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题:
问题描述: 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题: 如: 前端页面: html: 问题解决: 1.一个简单的办法,把 input 写成这样: <input type=& ...
- 不同的路径 II
class Solution { public: /** * @param obstacleGrid: A list of lists of integers * @return: An intege ...
- 设置服务器远程连接mysql
一直单人开发所以没有考虑过这方面,到新公司要做合作开发,所以要进行设置,然后开始自己搞 下面把过程罗列一下: 1)由于使用的云服务器 ,所以上面都配置好了,直接配置了mysql的命令行输入密码就可以进 ...
- VMWare10安装Ubuntu 13.10过程
把这当成自己的第一篇文章吧,准备工作环境切换到linux,选择Ubuntu 13.10桌面版,Ubuntu官网下载 先安装VMWare10,这个没什么可说的,安装好后启动,点击"新建虚拟机& ...
- __unset()魔术方法 删除类内私有属性
__unset()魔术方法 删除私有属性 unset()对共有属性进行删除 可通过__unset()魔术方法对私有属性进行操作 当在类外部执行unset()函数时,自动执行类内__unset()魔术方 ...