![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Частый гость ![]() ![]() ![]() Группа: Участники Сообщений: 77 Регистрация: 10.2.2009 Пользователь №: 12890 ![]() |
Через тапи при входящем звонке выполняю lineGetCallInfo, получаю структуру
typedef struct linecallinfo_tag { DWORD dwTotalSize; DWORD dwNeededSize; DWORD dwUsedSize; HLINE hLine; DWORD dwLineDeviceID; DWORD dwAddressID; DWORD dwBearerMode; DWORD dwRate; DWORD dwMediaMode; DWORD dwAppSpecific; DWORD dwCallID; DWORD dwRelatedCallID; DWORD dwCallParamFlags; DWORD dwCallStates; DWORD dwMonitorDigitModes; DWORD dwMonitorMediaModes; LINEDIALPARAMS DialParams; DWORD dwOrigin; DWORD dwReason; DWORD dwCompletionID; DWORD dwNumOwners; DWORD dwNumMonitors; DWORD dwCountryCode; DWORD dwTrunk; DWORD dwCallerIDFlags; DWORD dwCallerIDSize; DWORD dwCallerIDOffset; DWORD dwCallerIDNameSize; DWORD dwCallerIDNameOffset; DWORD dwCalledIDFlags; DWORD dwCalledIDSize; DWORD dwCalledIDOffset; DWORD dwCalledIDNameSize; DWORD dwCalledIDNameOffset; DWORD dwConnectedIDFlags; DWORD dwConnectedIDSize; DWORD dwConnectedIDOffset; DWORD dwConnectedIDNameSize; DWORD dwConnectedIDNameOffset; DWORD dwRedirectionIDFlags; DWORD dwRedirectionIDSize; DWORD dwRedirectionIDOffset; DWORD dwRedirectionIDNameSize; DWORD dwRedirectionIDNameOffset; DWORD dwRedirectingIDFlags; DWORD dwRedirectingIDSize; DWORD dwRedirectingIDOffset; DWORD dwRedirectingIDNameSize; DWORD dwRedirectingIDNameOffset; DWORD dwAppNameSize; DWORD dwAppNameOffset; DWORD dwDisplayableAddressSize; DWORD dwDisplayableAddressOffset; DWORD dwCalledPartySize; DWORD dwCalledPartyOffset; DWORD dwCommentSize; DWORD dwCommentOffset; DWORD dwDisplaySize; DWORD dwDisplayOffset; DWORD dwUserUserInfoSize; DWORD dwUserUserInfoOffset; DWORD dwHighLevelCompSize; DWORD dwHighLevelCompOffset; DWORD dwLowLevelCompSize; DWORD dwLowLevelCompOffset; DWORD dwChargingInfoSize; DWORD dwChargingInfoOffset; DWORD dwTerminalModesSize; DWORD dwTerminalModesOffset; DWORD dwDevSpecificSize; DWORD dwDevSpecificOffset; DWORD dwCallTreatment; DWORD dwCallDataSize; DWORD dwCallDataOffset; DWORD dwSendingFlowspecSize; DWORD dwSendingFlowspecOffset; DWORD dwReceivingFlowspecSize; DWORD dwReceivingFlowspecOffset; DWORD dwCallerIDAddressType; DWORD dwCalledIDAddressType; DWORD dwConnectedIDAddressType; DWORD dwRedirectionIDAddressType; DWORD dwRedirectingIDAddressType; } LINECALLINFO, *LPLINECALLINFO; В момент звонка вижу номер звонящего через dwCallerID, но какой номер номер он набрал не вижу... При поднятии трубки, збросе звонка и т.д.(любое следуещее действие) номер который был набран входящим абонентом попадает в dwRedirectingIDName запись. Если кто знает или имеет какие то предположения как увидеть этот номер до поднятия трубки говорите, по идее по АТС он передаеться, хотя бы на том основании что на экране системного телефона его видно... Может мне нужна какая то другая конструкция вместо linecallinfo??? И заодно спрошу сразу же, как при исходящем звонке, через Tapi или другим методом, динамически менять CLI абонента??? (Я пошел через попытку сменить параметры звонка пока он в холде, но пока тоже безушпешно...) Заранее спасибо за любые идеи... |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Ветеран форума ![]() ![]() ![]() ![]() ![]() Группа: Участники Сообщений: 1166 Регистрация: 29.8.2007 Из: Москва Пользователь №: 4065 ![]() |
По моим понятиям получается не совсем просто:
Ставим системник которым никто не пользуется, через него будет работать TAPI Направляем на него номер через 231 программу Через TAPI поднимаем на нем трубку при поступлении на него вызова и видим имя Сразу делаем с него при помощи TAPI трансфер в нужное место. При этом маршрутизацию должем делать софт. Именно так работало CTI приложение (какое-то Австралийское), которое мы года два назад тестировали у себя. Если идти таким путем то надо предусмотреть запасной вариант, если глюканоло TAPI и что бы маршрутизацию делала снова станция. К примеру использовать переключение DAY/NIGHT/... Возможно есть другие пути? На самом деле TAPI не умеет ничего более чем можно сделать вручную, только отдаем управление вызовами внешнему софту. В TAPI в качестве девайсов которые он видит и может ими управлять присутствуют STA, то для этой цели надо использовать системник (TAPI может им полностью управлять, в отличии от SLT). Подменить CLI при исходящем в силу вышесказанного думаю не получиться. |
|
|
![]()
Сообщение
#3
|
|
Частый гость ![]() ![]() ![]() Группа: Участники Сообщений: 77 Регистрация: 10.2.2009 Пользователь №: 12890 ![]() |
По моим понятиям получается не совсем просто: Ставим системник которым никто не пользуется, через него будет работать TAPI Направляем на него номер через 231 программу Через TAPI поднимаем на нем трубку при поступлении на него вызова и видим имя Сразу делаем с него при помощи TAPI трансфер в нужное место. При этом маршрутизацию должем делать софт. Именно так работало CTI приложение (какое-то Австралийское), которое мы года два назад тестировали у себя. Если идти таким путем то надо предусмотреть запасной вариант, если глюканоло TAPI и что бы маршрутизацию делала снова станция. К примеру использовать переключение DAY/NIGHT/... Возможно есть другие пути? На самом деле TAPI не умеет ничего более чем можно сделать вручную, только отдаем управление вызовами внешнему софту. В TAPI в качестве девайсов которые он видит и может ими управлять присутствуют STA, то для этой цели надо использовать системник (TAPI может им полностью управлять, в отличии от SLT). Подменить CLI при исходящем в силу вышесказанного думаю не получиться. TAPI у меня 3d party, что б мониторить и управлять всеми линиями. Для получения номера кидый звонок силами АТС кидаю на SLT и с помощью blindtransfer не подымая трубки перевожу на нужную группу, и у них во входящих уже вижу необходимую информацию. Переадресация в таком случае происходит до поступления на порт, так что даже при одновременном входе нескольких звонков они уже исправлеными попадают в нужную групу. А вот с подменой CLI пару идей есть, но пока не работает... Тоже через переадресацию на SLT с установленым CLI который трансферит на номер из БД который уже меняю динамически... Но пока вяло... |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 18.7.2025, 17:07 |