BDenis писал(а):
Походу. Но в этом случае, то что вы хотите можно реализовать только задержкой, а то как у вас работало считать божьим даром. Как известно — бог дал, бог взял.
))) Что-то не похоже это на инженерное объяснение...
Задержкой-то конечно можно, но в том то и дело, что фик знает какую задержку ставить. Номера городские даже набираются с разной скоростью, например прямой быстрее, чем с кодом 499. На межгород у каждого отдела еще ставиться свой префикс из 5 цифр (для контроля междугородних разговоров по отделам) 5 цифр + 8-ка + 10 цифр номера = 16 цифр - еще дольше набирается. И это если через Е1, а если выход через МГТС, то вообще непредсказуемо.
Опять же, где-то трубка снимается сразу, без гудка, где-то после первого гудка, где-то после второго...
Отсюда либо ставить с запасом, тогда на прямых номерах можно прослушать все приветствие и часть меню и только потом переключение, либо усложнить сценарий и пытаться угадать примерное время до соединения.
А как было бы просто, если бы момент соединения определялся!
Ну, и кстати, момент соединения в SLmon не отображается каким-либо событием.
То есть, разбирая следующий лог:
14:17:05 [028460] 5: FXO=OFFERING
14:17:05 [028460] 5: Get CallerId=703
14:17:05 [028460] 5: Check Trunk FixLine
14:17:05 [028460] 5: Hunting Trunk Line
14:17:05 [028460] 3: Peer=192.168.100.246:5038, PT=8, RecvOnly=0
14:17:05 [028460] 3: TrunkPrefix=, Dest=95141990, Dialno=95141990
14:17:05 [028460] 3: FxoHookOff
14:17:05 [028460] 3: SetInputGain(-8)
14:17:05 [028460] 3: ==18:TrunkDialOut
14:17:06 [028471] 3: DialOut(95141990)=0
14:17:08 [028483] 3: Fxo DialOut OK
14:17:08 [028484] 5: FXO=ACCEPT
14:17:08 [028484] 3: ==13:VoipAnswering
14:17:08 [028485] 5: FXO=CONNECTED
14:17:08 [028485] 3: RtpApiTalk[1,1], Peer=192.168.100.246:5038, PT=8, FC=2, NewOOB=0
14:17:08 [028485] 3: ==14:Talking
14:17:09 [028498] 3: Play(2)
14:17:09 [028500] 3: Play(5)
14:17:10 [028503] 3: Play(4)
14:17:15 [028562] 5: FXO=DISCONNECT
Могу отметить, что:
в 14:17:08 после строк
14:17:08 [028484] 5: FXO=ACCEPT
14:17:08 [028484] 3: ==13:VoipAnswering
в трубке слышится какой-то хруст. Возможно это и есть переполюсовка? После него появляются строки:
14:17:08 [028485] 5: FXO=CONNECTED
14:17:08 [028485] 3: RtpApiTalk[1,1]
14:17:08 [028485] 3: ==14:Talking
судя по всему именно этот момент считается соединением, после чего, выждав паузу (задержку, которую я поставил), Октелл начинает набор добавочного 254:
14:17:09 [028498] 3: Play(2)
14:17:09 [028500] 3: Play(5)
14:17:10 [028503] 3: Play(4)
Реально же где-то в 11 секунд пошел гудок, в 12-13 секунд заговорило голосовое меню.
(В 15 секунд я положил трубку: 14:17:15 [028562] 5: FXO=DISCONNECT)