Asterisk HINT/BLF em Realtime


Eu estava trabalhando em deixar o HINT/BLF em realtime, há algumas semanas por isso aqui vai algumas dicas, na expectativa de mais alguém ter está necessidade e nos ajudar a melhorar o código. 

Mudanças necessárias para o sip.conf: 
  • notifyringing deve ser definido como "yes"; 
  • tanto rtcachefriends e rtupdate definido como "yes"; 
  • limitonpeers deve ser definido como "yes". 

Alterações na tabela SIP Table, inserir as seguintes colunas: 
  • "call-limit" do tipo "int";
  • "subscribecontext" do tipo "varchar(80)"

o "subscribecontext" tem de ter o mesmo nome do contexto em que o comandos estão, eu uso "[blf_pbx]". A minha necessidade é de fazer uma "Terminal Inteligente" Virtual.  Eu já disponibilizei aqui uma maneira de fazer o HINT/BLF funcionar em um aparelho da Khomp o "IPS 212". Claro que esta solução é toda desenvolvida no "extensions.conf" ou no "extensions.ael" de maneira manual ou seja para cada extensão telefônica adcionada no seu PBX IP você tem obrigatoriamente que incluir no "subscribecontext".  Mas se você (como eu) estiver usando "ARA" (Asterisk Realtime Architecture) isto acaba sendo uma incoveniente. Este ponto de vista de fazer o HINT/BFL dinamico é na verdade um Shell Script que fica sendo executado no CRON. Caso você venha a alterar o Shell Script de maneira que fique melhor agradeceria em compartilhar aqui no post. 

Caso queira mudar o nome do contexto, pode fazê lo no Shell Script na linha que escrevemos o "switch => realtime/@".  

Em seguida ele escrevera o necessário nos arquivos extensions.conf ou extensios.ael, ou seja, de maneira dinâmica. 
"exten => ,hint,SIP/".


appenddynamic()
{
  mysql -u dbusername -pdbpassword -h dbhostname dbname -se "select distinct(context) from extensions" | grep -v '^context$' | while read context; do
    echo "[$context]" >> $ASTCONF
    echo "switch => Realtime/@" >> $ASTCONF
    if [ $context = "target_context" ]
    then
        echo "exten => 100,hint,SIP/100"
        echo "exten => 101,hint,SIP/101"
    fi
    echo "" >> $ASTCONF
  done
}

Eu realmente espero que faz algum sentido para alguém.

Ishfaq Malik
Software Developer
PackNet Ltd

Fonte: Lista de Discussão Asterisk Developer.

Nenhum comentário

Tecnologia do Blogger.