확장 라인 서비스(또는 디바이스별 회선 서비스)에는 API에 대한 모든 서비스 공급자 정의 확장이 포함됩니다. API는 서비스 공급자 공급업체가 디바이스별 확장을 사용하여 TAPI를 확장할 수 있도록 하는 메커니즘을 정의합니다. API는 확장 메커니즘만 정의하고 이를 통해 디바이스별 확장에 대한 액세스를 제공하지만 API는 해당 동작을 정의하지 않습니다. 동작은 서비스 공급자에 의해 완전히 정의됩니다.
TAPI는 스칼라 및 비트 플래그 상수 정의, 데이터 구조, 함수 및 메시지로 구성됩니다. 프로시저는 다음과 같이 공급업체에서 이러한 항목의 대부분을 확장할 수 있도록 정의됩니다.
확장 가능한 스칼라 데이터 상수의 경우 서비스 공급자 공급업체는 지정된 범위에서 새 값을 정의할 수 있습니다. 대부분의 데이터 상수는 DWORD 일반적으로 0x7FFFFFFF 통해 0x00000000 범위는 일반적인 향후 확장을 위해 예약된 반면, 0xFFFFFFFF 통한 0x80000000 공급업체별 확장에 사용할 수 있습니다. 공급업체는 API에서 정의한 데이터 형식의 자연스러운 확장인 값을 정의한다고 가정합니다.
확장 가능한 비트 플래그 데이터 상수의 경우 서비스 공급자 공급업체는 지정된 비트에 대한 새 값을 정의할 수 있습니다. 대부분의 비트 플래그 상수는 DWORD , 일반적으로 특정 수의 하위 비트는 일반 확장용으로 예약되고 나머지 상위 비트는 공급업체별 확장에 사용할 수 있습니다. 일반 비트 플래그는 비트 0에서 위로 할당됩니다. 공급업체별 확장은 비트 31부터 아래로 할당해야 합니다. 이렇게 하면 일반 확장과 공급업체별 확장에 비트 위치를 할당할 수 있는 최대 유연성을 제공합니다. 공급업체는 API에서 정의한 비트 플래그의 자연스러운 확장인 새 값을 정의해야 합니다.
확장 가능한 데이터 구조에는 디바이스별 사용을 위해 예약된 고정 크기 필드가 있습니다. 서비스 공급자는 변함없이 크기를 조정하여 정보의 양과 해석을 결정합니다. 디바이스별 필드를 정의하는 공급업체는 API에 의해 정의된 원래 데이터 구조의 이러한 자연스러운 확장을 만들어야 합니다.
lineDevSpecific및 lineDevSpecificFeature두 개의 함수와 LINE_DEVSPECIFIC 및 LINE_DEVSPECIFICFEATURE두 개의 관련 메시지는 공급업체별 확장 메커니즘을 제공합니다. lineDevSpecific 함수 및 관련 LINE_DEVSPECIFIC 메시지를 사용하면 애플리케이션이 기본 또는 보조 전화 통신 서비스에서 사용할 수 없는 디바이스별 회선, 주소 또는 호출 기능에 액세스할 수 있습니다. lineDevSpecific 함수의 매개 변수 프로필은 API에서 매개 변수를 거의 해석하지 않는다는 측면에서 제네릭입니다. 매개 변수 해석은 서비스 공급자에 의해 정의되며 매개 변수를 사용하는 애플리케이션에서 이해해야 합니다. 매개 변수는 애플리케이션에서 서비스 공급자로 TAPI를 통해 전달됩니다. 디바이스별 확장을 사용하는 애플리케이션은 일반적으로 다른 서비스 공급자와 작동하지 않습니다. 그러나 기본 및 추가 전화 통신 서비스에 작성된 애플리케이션은 확장 서비스 공급자와 함께 작동합니다.
편의를 위해 보다 특수한 이스케이프 함수도 제공됩니다. lineDevSpecific유사하지만 일부 매개 변수에 해석을 배치합니다. 보다 특수화된 이 함수는 스위치 기능을 스위치로 보낼 수 있도록 하는 디바이스별 이스케이프 함수인 lineDevSpecificFeature. LINE_DEVSPECIFICFEATURE 메시지는 스위치로 전송된 기능의 표시로 애플리케이션에 전송된 디바이스별 메시지입니다. 이 함수와 관련 메시지를 사용하면 애플리케이션이 줄의 기능 전화에서 단추 누름을 에뮬레이트할 수 있습니다. 기능 전화 및 단추의 의미는 공급업체별이므로 lineDevSpecificFeature 사용하는 기능 호출도 공급업체에 따라 다릅니다.
앞에서 설명한 것처럼 제조업체 식별자에 대한 중앙 레지스트리는 없습니다. 대신 EXTIDGEN(고유 식별자 생성기)을 사용할 수 있습니다.