Newbies/FAQ Forum :: RE: Dynamic Member for Queue

Asterisk Forums Читать

Author: Link

Posted: Tue Jan 03, 2012 13:55 (GMT 1)


Есть секретарь который комбинацией клавиш устанавливает режим работы (автосекретарь). Соответственно если нет оператора на работе в рабочее время устанавливается как бы переадресация, на второго секретаря. Оба входить в состав очереди не могут.

А подсчет ведется с помощью примитивной Asternic Call Cantre.

Вот и вся схема.
Перейти к источнику

Newbies/FAQ Forum :: Asterisk и Си

Asterisk Forums Читать

Author: Zoleg
Subject: Asterisk и Си
Posted: Tue Jan 03, 2012 13:45 (GMT 1)


.

Так получилось что возникла необходимость написать четыре похожих функций на Си и связать Астер с программой диспетчеризации такси.

Как это нарисовать на PHP за пять минут – знаю, а в Си полный профан- не изучал поэтому не могу сообразить как юзать данные, отправленные в

программу.

Главное в радиусе 40км нет ни кого кто может подсказать. Confused

Пробовал разные способы, но компилятор постоянно ругается на типы данных и ссылки на них. Embarassed

Прошу помощи в написании маленьгого модуля интергации с программулей на Си, остальные функции похожи, поэтому смогу "собезьяничать" по аналогии.

Надеюсь у кого найдется пару минут.


Code:
/*

* На входе имеем такие строчки

* exten => s,n,Set(GLOBAL(CID)=${CALLERID(num):-10})

* exten => s,n,Set(GLOBAL(OPCODE)=${CID:0:3})  //Трех значный идентификатор оператора сотовой связи

* exten => s,n,AGI(/home/DEVELOPMENT/C/Call-Taxi/dist/Debug/GNU-Linux-x86/call-taxi, ${CID}, ${OPCODE})

*

* TODO

* Выделить/определить OPCODE не в диалплане, а в программе и выдать уже готовый результат в виде "OPSOS"

* Определить городской телефон если  такого OPCODE нет – определяется (в диалплане так

* OPCODE=${CID:0:4} – в отличии от Сотовых не 3, а 4 знака.

* как это сделать в СИ х-з!

*/

#include "SFL/uniheader.h"

#include "SFL/ciaster/main.h"

/*

 *

 */

/*

int main(int argc, char * argv[]) {

    int ret = EXIT_SUCCESS;

   

   CiASTER_PROG agi;

   AGI_CMD_RESULT res;

   char dest[100];

   CiASTER_new(&agi);

       

  if (argc <= 1){ 

                CiASTER_verbose(&agi, &res, "Не переданы аргументы", 0);

                CiASTER_shutdown(&agi);

                ret = -1;

                }

   else

/*–Определяем оператора связи opsos — */

switch (argv[2]){  /* Эта хрень точно не работает, возможно нужно решать по другому */

        case "099":

                CiASTER_set_variable(&agi, &res, "OPSOS", "MTS");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "mts");

                break;

        case "050":

                CiASTER_variable(&agi, &res, "OPSOS", "MTS");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "mts");       

                break;

        case "098":

                CiASTER_set_variable(&agi, &res, "OPSOS", "KIEVSTAR");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "djkyevstar");       

                break;

        case "097":

                CiASTER_set_variable(&agi, &res, "OPSOS", "KIEVSTAR");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "djkyevstar");       

                break;

        case "096":

                CiASTER_set_variable(&agi, &res, "OPSOS", "KIEVSTAR");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "djkyevstar");       

                break;

        case "067":

                CiASTER_set_variable(&agi, &res, "OPSOS", "KIEVSTAR");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "djkyevstar");       

                break;

        case "063":

                CiASTER_set_variable(&agi, &res, "OPSOS", "LIFE");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "life");       

                break;

        case "093":

                CiASTER_set_variable(&agi, &res, "OPSOS", "LIFE");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "life");       

                break;

        case "068":

                CiASTER_set_variable(&agi, &res, "OPSOS", "BILINE");

                CiASTER_set_variable(&agi, &res, "opsosvoice", "biline");       

                break;

        default :

      /*  TODO

      * ПСЕВДОКОД

      * Set(GLOBAL(OPCODE)=${CID:0:4}) //По всей видимости отдельная функция

      * char opsos = gts_search(OPCODE)

      *

                * CiASTER_set_variable(&agi, &res, "OPSOS", opsos);

                * CiASTER_set_variable(&agi, &res, "opsosvoice", "gts");

      */     

                break;

        }

CiASTER_shutdown(&agi);       

return (ret);

}


_________________
"Все для такси": специальные бесшумные серверы (1U-3U 12 вольт, 8-35 ват на двухядерном Intel), АТС Астериск, автоматизация диспетчерских, Java на мобилу.

CDMA модемы ZTE AC8710/АС5710+libcdma+chan_dongle+Asterisk = много городских телефонов! (поставлю форумчанам).

Украина:

Teл. +38 041-432-32-97

Моб. +38 063-966-62-40

Перейти к источнику

Newbies/FAQ Forum :: RE: Dynamic Member for Queue

Asterisk Forums Читать

Author: Wapo

Posted: Tue Jan 03, 2012 13:08 (GMT 1)


Приветствую.

Изначально – а правильно ли ЭТО? Нет оператора на работе (болеет, беременна и т.д.) а мы его автоматом загоняем для обслуживания. И тем более как считать его раб. время?

Ну а насчет старта – гляньте в /etc/rc.d/rc.local – туда можно добавить ЛЮБОЙ вызов любого скрипта для командования астером.

Ну а насчет перестарта асмого астера – а кто его делает? Вот там и правим/ищем.
_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.7

Не люблю gui-сборки: натуральный продукт вкуснее.

И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
Перейти к источнику

Шлюз на Elastix

Asterisk Forums Читать

Поставили на работе Elastix для внутренней IP телефонии, подключили телефоны, всё заработало. Потом решили поднять на Elastix шлюз, в который заходит инет и раздаёт его по внутренней сети. и всё) телефоны перестали работать. На экранчике телефона пишется “Downloading XMLDefault.cnf.xml” и всё. Подскажите, пожалуйста, в чём проблема и как её решить??))
Перейти к источнику

Newbies/FAQ Forum :: Dynamic Member for Queue

Asterisk Forums Читать

Author: Link
Subject: Dynamic Member for Queue
Posted: Tue Jan 03, 2012 10:54 (GMT 1)


Есть queue в которой изначально нет участников. Они добавляются динамически с помощью cli ‘queue add ….’ и таким же образом происходит удаление ‘queue remove …’.

Все настроено и работает хорошо, но как я понимаю до перезагрузки asterisk.

Есть ли возможность выполнять скрипт при старте asterisk?

Заранее благодарен.
Перейти к источнику

| Skype for Asterisk - 57$ | Asterisk G.729 codec - 7$ | Digium HPEC - 7$ | Fax for Asterisk - 33$ |

Protected by Copyscape Web Plagiarism Check

Powered by © TELCO.NET.UA