Всем доброго дня. Разгребая архивы записей наткнулся на записи, полученные в 2010 году от тогда еще сотрудника «Скайлинк» в Рязани, Михаила Аникеенко. Давно не общались, но чтобы полезная кому-то информация не потерялась, размещаю творчески доработанную информацию в блоге.
В свое время стояла задача подключения Asterisk по ОКС7 и нужно было коррекно настроить передачу номера звонящего, в том числе отображать или нет номер локальному абоненту. Далее следует подробное описание и связь стандарта и зачений опций CallerID Presentation в астериске:
- allowed_not_screened : Presentation Allowed, Not Screened
- allowed_passed_screen : Presentation Allowed, Passed Screen
- allowed_failed_screen : Presentation Allowed, Failed Screen
- allowed : Presentation Allowed, Network Number
- prohib_not_screened : Presentation Prohibited, Not Screened
- prohib_passed_screen : Presentation Prohibited, Passed Screen
- prohib_failed_screen : Presentation Prohibited, Failed Screen
- prohib : Presentation Prohibited, Network Number
- unavailable : Number Unavailable
Вообще Presentation Restricted и Screening Indicator немного мутноватая и не доделанная вещь. Вот что есть в стандартах. В Q.763 описано так:
Calling party number parameter field:
Address presentation restricted (Pres. Restric.) indicator:
00 presentation allowed
01 presentation restricted
10 address not available (Note 2)
11 spare
NOTE 2 – When the address is unavailable, the subfields Odd/even indicator, Nature of address indicator (NAI), Calling party number incomplete indicator (NI), Numbering plan indicator are coded with 0’s.Screening indicator:
00 reserved (Note 3)
01 user provided, verified and passed
10 reserved (Note 3)
11 network provided
NOTE 3 – Code 00 and 10 are reserved for “user provided, not verified” and “user provided, verified and failed” respectively. Codes 00 and 10 are for national use.
в TABLE 4-11/Q.931 видим:
Calling party number information element:
Presentation indicator (octet 3a):
0 0 Presentation allowed
0 1 Presentation restricted
1 0 Number not available due to interworking
1 1 Reserved
NOTE 1 – The meaning and the use of this field is defined in 3/Q.951 and 4/Q.951.Screening indicator (octet 3a):
0 0 User-provided, not screened
0 1 User-provided, verified and passed
1 0 User-provided, verified and failed
1 1 Network provided
NOTE 2 – The meaning and the use of this field is defined in 3/Q.951 and 4/Q.951.
Далее читай разделы Q.951 3.5.2.3.1, 3.5.2.1.1.2, 3.5.2.1.1.3, 4.5.2.2.1, 5.5.2.1.1 и т.д., и таблицы TABLE 3-1/Q.951 TABLE 3-2
Далее, как всегда, вопрос стоит — верю или не верю. Даже написано — что пришло от пользователя — игнорировать: «The network shall disregard any value of the screening indicator, if received from the calling user». Были случаи, когда приходили вызовы абонента с необитаемого острова обрезания Господня, так вот там тоже стояло «user provided, verified and passed», однако обратно позвонить на этот остров было невозможно. По стандарту calling — это оциональное поле, на него можно забивать, так как там может быть что угодно, но некоторые производители биллингов другого мнения - типа в calling party обязательно правильный номер должен быть, ну-ну.
После проведения тестов установлены следующие соответствия значения в стандарте и значений Asterisk'а, с указанием результата (отображался номер или нет). CNIO — это услуга на мобильной сети — антиантиопределитель — определяет всегда номер (если он есть в calling party):
- allowed_not_screened : Presentation Allowed, Not Screened PR: 00 — pres allowed, SI: 00 — reserved, с CNIO и без — номер показывается
- allowed_passed_screen : Presentation Allowed, Passed Screen PR: 00 — pres allowed, SI: 01 — user provided, verified and passed, с CNIO и без — номер показывается
- allowed_failed_screen : Presentation Allowed, Failed Screen PR: 00 — pres allowed, SI: 10 — reserved, с CNIO и без — номер показывается
- allowed : Presentation Allowed, Network Number PR: 00 — pres allowed, SI: 11 — network provided, с CNIO и без — номер показывается
- prohib_not_screened : Presentation Prohibited, Not Screened PR: 01 — pres restricted, SI: 00 — reserved, с CNIO — номер показывается, без CNIO — «Restricted number»
- prohib_passed_screen : Presentation Prohibited, Passed Screen PR: 01 — pres restricted, SI: 01 — user provided, verified and passed, с CNIO — номер показывается, без CNIO — «Restricted number»
- prohib_failed_screen : Presentation Prohibited, Failed Screen PR: 01 — pres restricted, SI: 10 — reserved, с CNIO — номер показывается, без CNIO — «Restricted number»
- prohib : Presentation Prohibited, Network Number PR: 01- pres restricted, SI: 11 — network provided, с CNIO — номер показывается, без CNIO — «Restricted number»
- unavailable : Number Unavailable PR: 10 — address not available (Note 2), SI: 11 — network provided, с CNIO и без — номер показывается (странно но это так, на GSMе по другому: без CNIO - вообще даже слова что номер подавлен нет, просто вызов, ответить да-нет)
Выходит что presentation — это показывать номер абону или нет, а screening доп парам для коммутаторов — происхождение сalling номера, можно ли ему верить. (не в коем случае НЕЗЬЗЯ 🙂 )
Тесты были с libss7 version: SVN-trunk-r210 и Asterisk SVN-trunk-r150971M от 2008-10-15. Еще замечание - в libss7/dahdi не поддерживаются нецифровые номера (на момент написания), а надо, надо добавить поддержку — хотябы * и #. Нужно давно, коммутаторы и АТСки все поддерживают.