返回列表 發帖

ComNet Phone + Asterisk + register string (registered 变成 No Authentication)

本帖最後由 角色 於 2013-2-13 13:19 編輯

ComNet Phone + Asterisk是怎样实现?

incoming and outgoing trunk registration
1. sip.conf
  1. ;incoming call
  2. register => 85233226688:222333@202.0.179.3/85233226688

  3. ;outgoing call
  4. [cmphone-trunk]
  5. type=friend
  6. host=202.0.179.3
  7. username = 85233226688
  8. fromuser=85233226688
  9. realm=85233226688
  10. realm=huawei
  11. secret = 222333
  12. insecure = port,invite
  13. dtmfmode = auto
  14. canreinvite = no
  15. transport=udp
  16. nat=yes
  17. qualify = no
  18. disallow = all
  19. allow = ulaw
  20. allow = alaw
  21. context = from-cmphone
複製代碼
;dialplan
2. extension.conf
  1. exten => _X.,1,Dial(SIP/${EXTEN}@cmphone-trunk,,r)

  2. [from-cmphone]
  3. exten => 85233226688,1,Dial(SIP/2322)
  4. exten => 85233556688,n,Hangup()
複製代碼
Problem:
在Asterisk CLI:sip show registry

ComNet Phone不知道为什么status,从registered变成No Authentication!那么ComNet打出没有问题,而打入就出问题。

怎样解决,就是要在CLI里,执行sip reload,就可以把No Authentication变成registered。

Reference:
关于QNAP cron job information Link

上面说的都是manual做,非常不方便,但是都有别的方法,就是用cron job,自动定时(3分钟)检测一次。等我有点时间就那些自动的script,写出来,那么大家就可以用了。

TOP

1. 先用crontab -e, 加入下面的rules

*/3 * * * * /opt/asterisk-1.8/sbin/cron.sh

2. 然后用crontab -l,list all the scheduled rules
  1. [/opt/asterisk-1.8/sbin] # crontab -l
  2. # m h dom m dow cmd
  3. 0 3 * * 0 /etc/init.d/idmap.sh dump
  4. 0 4 * * * /sbin/hwclock -s
  5. 0 3 * * * /sbin/vs_refresh
  6. 0 3 * * * /sbin/clean_reset_pwd
  7. 0-59/15 * * * * /etc/init.d/nss2_dusg.sh
  8. 0 4 * * * /etc/init.d/ImRd.sh bgThGen
  9. 4 3 * * 3 /etc/init.d/backup_conf.sh
  10. 37 * * * * /sbin/qddns_check 2>/dev/null
  11. */3 * * * * /opt/asterisk-1.8/sbin/cron.sh
  12. [/opt/asterisk-1.8/sbin] #
複製代碼
3. cron.sh
  1. #!/bin/sh

  2. #/opt/asterisk-1.8/sbin/asterisk -rx "sip reload"
  3. #echo "sip reload at `date`" >> /tmp/cron.log

  4. cmphone_status=`/opt/asterisk-1.8/sbin/asterisk -rx "sip show registry" | grep "No Authentication"`

  5. if [ "$cmphone_status" != "" ]
  6.   then
  7.         /opt/asterisk-1.8/sbin/asterisk -rx "sip reload"
  8.         echo $cmphone_status >> /tmp/cron.log
  9.         echo "sip reload at `date`" >> /tmp/cron.log
  10. fi
複製代碼
4. Check the crond
  1. [/opt/asterisk-1.8/sbin] # ps -aux | grep cron
  2. 18808 admin       564 R   grep cron
  3. 20736 admin       716 S   /usr/sbin/crond -l 9 -c /tmp/cron/crontabs
複製代碼
5. kill 20736

6. Restart the script
/etc/init.d/crond.sh restart

TOP

剛剛發現在Synology唔work.
Welcome to my TaoBao shop: http://mandymak520.taobao.com/

TOP

Me too  No Auth

TOP

OK again after reload.

TOP

回復 4# 雯雯

怎样不work?

TOP

回復 6# sbbcnn

是自动reload吗

TOP

本帖最後由 角色 於 2013-4-7 09:32 編輯

No Authentication有在出现,幸好我的系统有cron job,没三分钟都check一次。根据下面的log,系统在Mar 30 22:24:01-22:39:00 HKT 2013之间15分钟内,经常出现No Authentication问题。

sip reload at Sat Mar 30 22:27:01 HKT 2013
sip reload at Sat Mar 30 22:30:01 HKT 2013
sip reload at Sat Mar 30 22:33:01 HKT 2013
sip reload at Sat Mar 30 22:39:01 HKT 2013

TOP

一 reboot 系统,那个cron job就不见了。

TOP

ComNet Phone的No Authentication又再出现。由于我的NAS自动reboot过,所以之前的cronjob,已经没有了,需要的别把这些东西放在另外一个地方才可以。

不知道大家是否有这样的经验呢?

TOP

回復 11# 角色

Qnap一reboot etc內所有東西都會不見, Synology不會.
Welcome to my TaoBao shop: http://mandymak520.taobao.com/

TOP

应该是cron job不见了。

TOP

本帖最後由 角色 於 2013-5-3 02:08 編輯

怎样建立cron job,可以参考下面帖子:

http://www.telecom-cafe.com/foru ... &highlight=auto

选Method 2
http://wiki.qnap.com/wiki/Add_items_to_crontab

TOP

怎样auto-add cron.sh?

1. Edit /opt/etc/init.d/asterisk-start.sh
2. Add tmpfile=/tmp/crontab.tmp
3. Add the following lines before the asterisk programs
# read crontab and remove custom entries (usually not there since after a reboot
# QNAP restores to default crontab:
# crontab -l | grep -vi "custom1.sh" | grep -vi "custom2.sh" > $tmpfile
crontab -l | grep -vi "cron.sh" > $tmpfile


#  crontab /xyz/home/userx/crontab -u userx
echo "*/3 * * * * /opt/asterisk-1.8/sbin/cron.sh" >> $tmpfile

# load crontab from file
crontab $tmpfile

# remove temporary file
rm $tmpfile

# restart cron daemon
/etc/init.d/crond.sh restart

TOP

返回列表