blob: ec086beb50a696b7f4e35d46948e2219eff11b08 [file] [log] [blame]
Joey Armstrong25589d82024-01-02 22:31:35 -05001// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
yasin sapli2bbfbb42021-11-01 14:30:10 +00002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17option go_package = "github.com/opencord/voltha-protos/v5/go/voip_system_profile";
18option java_package = "org.opencord.voltha.voip_system_profile";
19
20package voip_system_profile;
21import "google/api/annotations.proto";
22
23message VoipSystemProfileRequest {
24 string key = 1;
25 VoipSystemProfile voipSystemProfile = 2;
26}
27
28// A system wide profile for voip service that can be stored into voltha KV anytime.
29// Designed based on G988-2017 (also designed flexible to be able to be modified later on)
30message VoipSystemProfile {
31 SipConfig sipConfig = 1;
32 VoipConfig voipConfig = 2;
33}
34
35// Common voip fields are grouped here
36message VoipConfig {
37 IpHostConfig ipHostConfig = 1;
38 TcpUdpConfig tcpUdpConfig = 2;
39 VoipVoiceCtp voipVoiceCtp = 3;
40 VoipMediaProfile voipMediaProfile = 4;
41 VoiceServiceProfile voiceServiceProfile = 5;
42 RtpProfile rtpProfile = 6;
43 PptpPotsUni pptpPotsUni = 7;
44}
45
46message IpHostConfig {
47 uint32 ipOptions = 1;
48 string onuIdentifier = 2;
49 string ipAddress = 3;
50 string mask = 4;
51 string gateway = 5;
52 string primaryDns = 6;
53 string secondaryDns = 7;
54 string relayAgentOptions = 8;
55}
56
57message TcpUdpConfig {
58 uint32 protocol = 1;
59 string tosField = 2;
60}
61
62message VoipVoiceCtp {
63 uint32 signallingCode = 1;
64}
65
66message VoipMediaProfile {
67 uint32 faxMode = 1;
68 uint32 codecSelection1 = 2;
69 uint32 packetPeriodSelection1 = 3;
70 uint32 silenceSuppression1 = 4;
71 uint32 codecSelection2 = 5;
72 uint32 packetPeriodSelection2 = 6;
73 uint32 silenceSuppression2 = 7;
74 uint32 codecSelection3 = 8;
75 uint32 packetPeriodSelection3 = 9;
76 uint32 silenceSuppression3 = 10;
77 uint32 codecSelection4 = 11;
78 uint32 packetPeriodSelection4 = 12;
79 uint32 silenceSuppression4 = 13;
80 uint32 oobDtmf = 14;
81}
82
83message VoiceServiceProfile {
84 uint32 announcementType = 1;
85 uint32 jitterTarget = 2;
86 uint32 jitterBufferMax = 3;
87 bool echoCancelInd = 4;
88 uint32 pstnProtocolVariant = 5;
89 uint32 dtmfDigitLevels = 6;
90 uint32 dtmfDigitDuration = 7;
91 uint32 hookFlashMinimumTime = 8;
92}
93
94message RtpProfile {
95 uint32 localPortMin = 1;
96 uint32 localPortMax = 2;
97 string dscpMark = 3;
98 uint32 piggyBackEvents = 4;
99 uint32 toneEvents = 5;
100 uint32 dtmfEvents = 6;
101 uint32 casEvents = 7;
102}
103
104message PptpPotsUni {
105 string arc = 1;
106 string arcInterval = 2;
107 uint32 impedance = 3;
108 uint32 transmissionPath = 4;
109 sint32 rxGain = 5;
110 sint32 txGain = 6;
111 uint32 potsHoldOverTime = 7;
112 uint32 nominalFeedVoltage = 8;
113 uint32 lossOfSoftSwitch = 9;
114}
115
116// Sip specific fields are grouped here
117message SipConfig {
118 SipUserData sipUserData = 1;
119 SipAgentConfig sipAgentConfig = 2;
120 NetworkDialPlan networkDialPlan = 3;
121 VoipFeatureAccessCodes voipFeatureAccessCodes = 4;
122 VoipApplicationServiceProfile voipApplicationServiceProfile = 5;
123}
124
125message SipUserData {
126 string userPartAor = 1;
127 UsernameAndPassword usernameAndPassword = 2;
128 string voicemailServerSipUri = 3;
129 int32 voicemailSubscriptionExpirationTime = 4;
130 int32 releaseTimer = 5;
131 int32 rohTimer = 6;
132}
133
134message SipAgentConfig {
135 string outboundProxyAddress = 1;
136 string primarySipDns = 2;
137 string secondarySipDns = 3;
138 int32 sipRegExpTime = 4;
139 int32 sipReregHeadStartTime = 5;
140 string SipRegistrar = 6;
141 string softSwitch = 7;
142 SipResponseTable sipResponseTable = 8;
143 bool sipOptionTransmitControl = 9;
144 string sipUriFormat = 10;
145 string redundantSipAgentPointer = 11;
146}
147
148message NetworkDialPlan {
149 uint32 criticalDialTimeout = 1;
150 uint32 partialDialTimeout = 2;
151 uint32 dialPlanFormat = 3;
152 DialPlanTable dialPlanTable = 4;
153}
154
155message UsernameAndPassword {
156 int32 validationScheme = 1;
157}
158
159message SipResponseTable {
160 string sipResponseCode = 1;
161 string tone = 2;
162 string textMessage = 3;
163}
164
165message DialPlanTable {
166 uint32 dialPlanId = 1;
167 uint32 action = 2;
168 string dialPlanToken = 3;
169 uint32 dialPlanTableMaxSize = 4;
170}
171
172message VoipFeatureAccessCodes {
173 string cancelCallWaiting = 1;
174 string callHold = 2;
175 string callPark = 3;
176 string callerIdActivate = 4;
177 string callerIdDeactivate = 5;
178 string doNotDisturbActivation = 6;
179 string doNotDisturbDeactivation = 7;
180 string doNotDisturbPinChange = 8;
181 string emergencyServiceNumber = 9;
182 string intercomService = 10;
183 string unattendedCallTransfer = 11;
184 string attendedCallTransfer = 12;
185}
186
187message VoipApplicationServiceProfile {
188 uint32 cidFeatures = 1;
189 uint32 callWaitingFeatures = 2;
190 uint32 callProgressOrTransferFeatures = 3;
191 uint32 callPresentationFeatures = 4;
192 uint32 directConnectFeature = 5;
193 string directConnectUriPointer = 6;
194 string bridgedLineAgentUriPointer = 7;
195 string conferenceFactoryUriPointer = 8;
196 uint32 dialToneDelayTimer = 9;
197}