如何得到 Asterisk 中 MYSQL 里存放的所有用户的分机号 如何得到 Asterisk 中 MYSQL 里存放的所有用户的分机号 ? 最近有这样的一个场景, 在打电话的系统中需要得到 Asterisk 中 MYSQL 里存放的所有用户的分机号, 因为从其它途径得到的电话号码可能不准确. 具体使用场景是:
如何得到 Asterisk 中 MYSQL 里存放的所有用户的分机号
如何得到 Asterisk 中 MYSQL 里存放的所有用户的分机号
?
最近有这样的一个场景, 在打电话的系统中需要得到 Asterisk 中 MYSQL 里存放的所有用户的分机号, 因为从其它途径得到的电话号码可能不准确. 具体使用场景是: 当使用者找到自己要联系的员工后, 系统通过员工姓名到 Asterisk 服务器上找到相应的员工所对应的电话号码, 并将当前电话与所找员工的电话进行联通.
?
1, 找到 Asterisk 服务器上的 ***.conf 配置文件, 好像叫 res_odbc_additional.conf. 因为当时没有记录这个文件, 现在也想不起名字了. 自己可以去慢慢找一下. 它里面有下面这样的配置.
- hostname = 10.17.64.10
- dbname=asteriskcdrdb
- password = AbQdmjiuo8D1
- user = freepbxuser
- userfield=1
- port=3306
- sock=/tmp/mysql.sock
2, 通过上面的配置信息, 使用 MYSQL 客户端去连接. 如果出现错误: 错误码: 1130 Host 'xxx' is not allowed to connect to this MySQL server,? 请参考另一文章: http://jerval.iteye.com/admin/blogs/2101747 去解决.
3, 连接成功后, 会看到如下两个有关的数据库.
- asterisk
- asteriskcdrdb
? 其中 asterisk 是 Asterisk 的核心配置信息. 而 asteriskcdrdb 则是用于记录通话记录的. 这里我们打开 asterisk 数据库, 找到 devices 表, 打开表就能看到所有用户的分机号了. 表结构如下:
- Field Type Null Key Default Extra
- id varchar(20) NO
- tech varchar(10) NO
- dial varchar(50) NO
- devicetype varchar(5) NO
- user varchar(50) YES NULL
- description varchar(50) YES NULL
- emergency_cid varchar(100) YES NULL
? 到此就可以通过 JDBC 或者其它数据访问代码来对这些信息进行访问了.
?
?
?
来源: https://www.php1.cn/detail/php-247bb6f337.html