В диалплане есть некоторые контрольные точки. Входящий звонок, гуляя по закоулкам диалплана, может побывать в этих точках, а может и нет. Мне надо знать, какой входящий звонок где побывал. Например, фиксируя в mysql. В момент поступления входящего вызова я создаю запись, содержащую callerid и время поступления звонка. ID этой записи однозначно идентифицирует конкретный входящий вызов. Встает вопрос, как идентифицировать входящий при записи в БД в контрольной точке? По callerid я без проблем найду последнюю запись в базе. Однако, возможны ситуации, когда одновременно приходит несколько звонков от разных людей, но с одинаковым callerid (многоканальные номера, sip, неопределившиеся callerid и т.п.).
Простой пример. Допустим, сначала пришел звонок ЗВ1, потом ЗВ2 с одинаковым callerid. Затем ЗВ1 попал в контрольную точку КТ1. Затем оба звонка завершились. Но в базе у меня у меня будет значиться, что в КТ1 был ЗВ2, что не верно.
Если я не путаю, то идеалогия астериске такова: есть "устройства" и есть "каналы", "каналы" связывают "устройства". В этой терминологии получается, что входящий звонок - это "устройство", 2 входящих с одним callerid - 2 разных устройства. Может, в астериске есть какие-нибудь уникальные id этих устройств?