Asterisk CRM sugarCRM
небольшое howto как выдрать номер из базы CRM при звонке на asterisk (Freepbx-Elastix) и отправить его на экран менеджеру
В Freepbx
в файле extensions_custom.conf
[custom-CallNotifcall]
exten => s,1,TrySystem(/usr/bin/ssh user@server "nohup bash /home/user/notify ${CALLERID(name)}" &)
exten => s,n(dest-ext),Goto(ext-group,600,1)
в Custom Destination admin-Freepbx запись callnotif, которая обращалась к макросу custom-CallNotifcall,s,1
Далее в Incoming Route делаю custon destiation callnotif
скрипты
notify
#!/bin/bash
#
#Send messages through SSH to remote hosts' notify-osd
#
message="$@"
message=`echo $message|cut -c2-`
message=`/home/user/search_data.py $message`
logger "обработанная инфа "$message
ssh manager1@manager1-work.local "DISPLAY=:0 XAUTHORITY=/home/manager1/.Xauthority zenity --info --text \"$message\"" &
ssh manager1@manager2-work.local "DISPLAY=:0 XAUTHORITY=/home/manager2/.Xauthority zenity --info --text \"$message\"" &
exit
search_data.py
#!/usr/bin/env python
# -
- coding: utf-8 --
import MySQLdb as db
import sys
q="%"+sys.argv[1]+"%"
con=db.connect(host="sugar_server",
user="user",
passwd="pass",
db="sugarcrm",
charset="utf8" )
cur = con.cursor()
#запрос в LEADS
querry="""SELECT `first_name`,`last_name`,`account_name`,`assigned_user_id` FROM `sugarcrm`.`leads` WHERE CONVERT(`phone_home` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_mobile` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_work` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_other` USING utf8) LIKE '%(q)s'"""%{"q":q}
cur.execute(querry)
for row in cur:
print row[1].encode('utf-8'), " ", row[0].encode('utf-8'), " ", row[2].encode('utf-8'), " ", row[3].encode('utf-8')
#Запрос в Контрагенты
querry="""SELECT `name` FROM `sugarcrm`.`accounts` WHERE CONVERT(`phone_fax` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_office` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_alternate` USING utf8) LIKE '%(q)s'"""%{"q":q}
cur.execute(querry)
for row in cur:
print row[0].encode('utf-8')
#Запрос в Контакты КОНтрагентов
querry="""SELECT `first_name`,`last_name`,`assigned_user_id` FROM `sugarcrm`.`contacts` WHERE CONVERT(`phone_fax` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_other` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_work` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_home` USING utf8) LIKE '%(q)s' OR CONVERT(`phone_mobile` USING utf8) LIKE '%(q)s'"""%{"q":q}
cur.execute(querry)
for row in cur:
print row[1].encode('utf-8'), " ", row[0].encode('utf-8'), " ", row[2].encode('utf-8')
cur.close()
con.close()
Из проблем пока не понял как сделать всплывающие сообщение notify не работает через ssh, zenit --notification с ошибками отваливается