Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Попередня ревізія | ||
askoziaintro [2018/03/14 16:43] |
askoziaintro [2023/06/16 12:23] (поточний) borisov |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== Спрощуємо життя кол-центру ====== | ||
+ | Ця механіка призначена для попереднього сповіщення користувача голосом про стан його рахунку, | ||
+ | ...... | ||
+ | |||
+ | Тут має бути довга і сумна розповідь, | ||
+ | |||
+ | ....... | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | |||
+ | /** | ||
+ | * Config section | ||
+ | */ | ||
+ | //Ubilling serial number | ||
+ | $ubillingSerial = ' | ||
+ | //Full Ubilling URL for API connection | ||
+ | $ubillingApiUrl = ' | ||
+ | |||
+ | //user state => file_name to playback | ||
+ | $userStates = array( | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | /** | ||
+ | * End of config section | ||
+ | */ | ||
+ | |||
+ | /** | ||
+ | * Returns some channel variable value | ||
+ | * | ||
+ | * @param object $agi | ||
+ | * @param string $_varName | ||
+ | * | ||
+ | * @return string | ||
+ | */ | ||
+ | function GetVarChannnel($agi, | ||
+ | $v = $agi-> | ||
+ | if (!$v[' | ||
+ | $agi-> | ||
+ | return $v[' | ||
+ | } else { | ||
+ | $agi-> | ||
+ | return ""; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | require(' | ||
+ | $agi = new AGI(); | ||
+ | |||
+ | //answering incoming call | ||
+ | $agi-> | ||
+ | //getting incoming number | ||
+ | $number = GetVarChannnel($agi, | ||
+ | //getting user state from billing API | ||
+ | $url = $ubillingApiUrl . '? | ||
+ | $user = file_get_contents($url); | ||
+ | $user = trim($user); | ||
+ | //play some file according to recieved user state | ||
+ | if (isset($userStates[$user])) { | ||
+ | $agi-> | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | |||
+ | </ | ||
+ | |||
+ | а ось тут, як це все використовувати в контексті редактора маршрутів | ||
+ | |||
+ | |||
+ | {{: |