1 /* 2 LinphoneProxyConfigImpl.java 3 Copyright (C) 2010 Belledonne Communications, Grenoble, France 4 5 This program is free software; you can redistribute it and/or 6 modify it under the terms of the GNU General Public License 7 as published by the Free Software Foundation; either version 2 8 of the License, or (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 */ 19 package org.linphone.core; 20 21 import org.linphone.core.LinphoneCore.RegistrationState; 22 23 class LinphoneProxyConfigImpl implements LinphoneProxyConfig { 24 25 protected final long nativePtr; 26 protected LinphoneCoreImpl mCore; 27 Object userData; 28 finalize(long ptr)29 private native void finalize(long ptr); getState(long nativePtr)30 private native int getState(long nativePtr); setExpires(long nativePtr, int delay)31 private native void setExpires(long nativePtr, int delay); getExpires(long nativePtr)32 private native int getExpires(long nativePtr); createProxyConfig( long nativePtr)33 private native long createProxyConfig( long nativePtr); 34 LinphoneProxyConfigImpl(LinphoneCoreImpl core,String identity,String proxy,String route, boolean enableRegister)35 protected LinphoneProxyConfigImpl(LinphoneCoreImpl core,String identity,String proxy,String route, boolean enableRegister) throws LinphoneCoreException { 36 mCore=core; 37 nativePtr = createProxyConfig(core.nativePtr); 38 setIdentity(identity); 39 setProxy(proxy); 40 setRoute(route); 41 enableRegister(enableRegister); 42 } 43 LinphoneProxyConfigImpl(LinphoneCoreImpl core)44 protected LinphoneProxyConfigImpl(LinphoneCoreImpl core) { 45 mCore=core; 46 nativePtr = createProxyConfig(core.nativePtr); 47 } 48 /*reserved for JNI */ LinphoneProxyConfigImpl(LinphoneCoreImpl core, long aNativePtr)49 protected LinphoneProxyConfigImpl(LinphoneCoreImpl core, long aNativePtr) { 50 mCore=core; 51 nativePtr = aNativePtr; 52 } 53 isValid()54 private void isValid() { 55 if (nativePtr == 0) { 56 throw new RuntimeException("proxy config removed"); 57 } 58 } 59 finalize()60 protected void finalize() throws Throwable { 61 if (nativePtr != 0) { 62 finalize(nativePtr); 63 } 64 super.finalize(); 65 } newLinphoneProxyConfig()66 private native long newLinphoneProxyConfig(); 67 edit(long ptr)68 private native void edit(long ptr); done(long ptr)69 private native void done(long ptr); 70 setIdentity(long ptr,String identity)71 private native void setIdentity(long ptr,String identity); getIdentity(long ptr)72 private native String getIdentity(long ptr); setAddress(long ptr, long address)73 private native void setAddress(long ptr, long address); getAddress(long ptr)74 private native long getAddress(long ptr); setProxy(long ptr,String proxy)75 private native int setProxy(long ptr,String proxy); getProxy(long ptr)76 private native String getProxy(long ptr); 77 78 enableRegister(long ptr,boolean value)79 private native void enableRegister(long ptr,boolean value); isRegisterEnabled(long ptr)80 private native boolean isRegisterEnabled(long ptr); 81 isRegistered(long ptr)82 private native boolean isRegistered(long ptr); setDialPrefix(long ptr, String prefix)83 private native void setDialPrefix(long ptr, String prefix); getDialPrefix(long ptr)84 private native String getDialPrefix(long ptr); 85 normalizePhoneNumber(long ptr,String number)86 private native String normalizePhoneNumber(long ptr,String number); normalizeSipUri(long ptr,String username)87 private native long normalizeSipUri(long ptr,String username); 88 getDomain(long ptr)89 private native String getDomain(long ptr); 90 setDialEscapePlus(long ptr, boolean value)91 private native void setDialEscapePlus(long ptr, boolean value); getDialEscapePlus(long ptr)92 private native boolean getDialEscapePlus(long ptr); 93 getRoute(long ptr)94 private native String getRoute(long ptr); setRoute(long ptr,String uri)95 private native int setRoute(long ptr,String uri); enablePublish(long ptr,boolean enable)96 private native void enablePublish(long ptr,boolean enable); publishEnabled(long ptr)97 private native boolean publishEnabled(long ptr); setContactParameters(long ptr, String params)98 private native void setContactParameters(long ptr, String params); 99 lookupCCCFromIso(long nativePtr, String iso)100 private native int lookupCCCFromIso(long nativePtr, String iso); lookupCCCFromE164(long nativePtr, String e164)101 private native int lookupCCCFromE164(long nativePtr, String e164); 102 getNatPolicy(long nativePtr)103 private native Object getNatPolicy(long nativePtr); setNatPolicy(long nativePtr, long natpolicy)104 private native void setNatPolicy(long nativePtr, long natpolicy); 105 106 enableRegister(boolean value)107 public LinphoneProxyConfig enableRegister(boolean value) { 108 isValid(); 109 enableRegister(nativePtr,value); 110 return this; 111 } 112 done()113 public void done() { 114 isValid(); 115 Object mutex=mCore!=null ? mCore : this; 116 synchronized(mutex){ 117 done(nativePtr); 118 } 119 } 120 edit()121 public LinphoneProxyConfig edit() { 122 isValid(); 123 Object mutex=mCore!=null ? mCore : this; 124 synchronized(mutex){ 125 edit(nativePtr); 126 } 127 return this; 128 } 129 getNatPolicy()130 public LinphoneNatPolicy getNatPolicy() { 131 isValid(); 132 return (LinphoneNatPolicy)getNatPolicy(nativePtr); 133 } 134 setNatPolicy(LinphoneNatPolicy natpolicy)135 public void setNatPolicy(LinphoneNatPolicy natpolicy) { 136 isValid(); 137 setNatPolicy(nativePtr, ((LinphoneNatPolicyImpl)natpolicy).mNativePtr); 138 } 139 setIdentity(String identity)140 public void setIdentity(String identity) throws LinphoneCoreException { 141 isValid(); 142 setIdentity(nativePtr,identity); 143 } 144 setAddress(LinphoneAddress address)145 public void setAddress(LinphoneAddress address) throws LinphoneCoreException { 146 isValid(); 147 setAddress(nativePtr,((LinphoneAddressImpl)address).nativePtr); 148 } 149 setProxy(String proxyUri)150 public void setProxy(String proxyUri) throws LinphoneCoreException { 151 isValid(); 152 if (setProxy(nativePtr,proxyUri)!=0) { 153 throw new LinphoneCoreException("Bad proxy address ["+proxyUri+"]"); 154 } 155 } normalizePhoneNumber(String number)156 public String normalizePhoneNumber(String number) { 157 isValid(); 158 return normalizePhoneNumber(nativePtr,number); 159 } normalizeSipUri(String username)160 public LinphoneAddress normalizeSipUri(String username) { 161 isValid(); 162 long ptr = normalizeSipUri(nativePtr,username); 163 if (ptr==0) { 164 return null; 165 } else { 166 return new LinphoneAddressImpl(ptr,LinphoneAddressImpl.WrapMode.FromConst); 167 } 168 } setDialPrefix(String prefix)169 public void setDialPrefix(String prefix) { 170 isValid(); 171 setDialPrefix(nativePtr, prefix); 172 } getDialPrefix()173 public String getDialPrefix() { 174 isValid(); 175 return getDialPrefix(nativePtr); 176 } getDomain()177 public String getDomain() { 178 isValid(); 179 return getDomain(nativePtr); 180 } setDialEscapePlus(boolean value)181 public void setDialEscapePlus(boolean value) { 182 isValid(); 183 setDialEscapePlus(nativePtr,value); 184 } getDialEscapePlus()185 public boolean getDialEscapePlus() { 186 isValid(); 187 return getDialEscapePlus(nativePtr); 188 } getIdentity()189 public String getIdentity() { 190 isValid(); 191 return getIdentity(nativePtr); 192 } getAddress()193 public LinphoneAddress getAddress() { 194 isValid(); 195 long ptr = getAddress(nativePtr); 196 if (ptr==0) { 197 return null; 198 } else { 199 return new LinphoneAddressImpl(ptr,LinphoneAddressImpl.WrapMode.FromConst); 200 } 201 } getProxy()202 public String getProxy() { 203 isValid(); 204 return getProxy(nativePtr); 205 } isRegistered()206 public boolean isRegistered() { 207 isValid(); 208 return isRegistered(nativePtr); 209 } registerEnabled()210 public boolean registerEnabled() { 211 isValid(); 212 return isRegisterEnabled(nativePtr); 213 } getRoute()214 public String getRoute() { 215 isValid(); 216 return getRoute(nativePtr); 217 } setRoute(String routeUri)218 public void setRoute(String routeUri) throws LinphoneCoreException { 219 isValid(); 220 if (setRoute(nativePtr, routeUri) != 0) { 221 throw new LinphoneCoreException("cannot set route ["+routeUri+"]"); 222 } 223 } enablePublish(boolean enable)224 public void enablePublish(boolean enable) { 225 isValid(); 226 enablePublish(nativePtr,enable); 227 } getState()228 public RegistrationState getState() { 229 isValid(); 230 return RegistrationState.fromInt(getState(nativePtr)); 231 } 232 setExpires(int delay)233 public void setExpires(int delay) { 234 isValid(); 235 setExpires(nativePtr, delay); 236 } getExpires()237 public int getExpires() { 238 isValid(); 239 return getExpires(nativePtr); 240 } publishEnabled()241 public boolean publishEnabled() { 242 isValid(); 243 return publishEnabled(nativePtr); 244 } 245 @Override setContactParameters(String params)246 public void setContactParameters(String params) { 247 isValid(); 248 setContactParameters(nativePtr, params); 249 } 250 @Override lookupCCCFromIso(String iso)251 public int lookupCCCFromIso(String iso) { 252 isValid(); 253 return lookupCCCFromIso(nativePtr, iso); 254 } 255 @Override lookupCCCFromE164(String e164)256 public int lookupCCCFromE164(String e164) { 257 isValid(); 258 return lookupCCCFromE164(nativePtr, e164); 259 } getError(long nativeptr)260 private native int getError(long nativeptr); 261 @Override getError()262 public Reason getError() { 263 isValid(); 264 return Reason.fromInt(getError(nativePtr)); 265 } setPrivacy(long nativePtr, int mask)266 private native void setPrivacy(long nativePtr, int mask); 267 @Override setPrivacy(int privacy_mask)268 public void setPrivacy(int privacy_mask) { 269 isValid(); 270 setPrivacy(nativePtr,privacy_mask); 271 } 272 getPrivacy(long nativePtr)273 private native int getPrivacy(long nativePtr); 274 @Override getPrivacy()275 public int getPrivacy() { 276 isValid(); 277 return getPrivacy(nativePtr); 278 } 279 enableAvpf(long nativePtr, boolean enable)280 private native void enableAvpf(long nativePtr, boolean enable); 281 @Override enableAvpf(boolean enable)282 public void enableAvpf(boolean enable) { 283 isValid(); 284 enableAvpf(nativePtr, enable); 285 } 286 avpfEnabled(long nativePtr)287 private native boolean avpfEnabled(long nativePtr); 288 @Override avpfEnabled()289 public boolean avpfEnabled() { 290 isValid(); 291 return avpfEnabled(nativePtr); 292 } 293 setAvpfRRInterval(long nativePtr, int interval)294 private native void setAvpfRRInterval(long nativePtr, int interval); 295 @Override setAvpfRRInterval(int interval)296 public void setAvpfRRInterval(int interval) { 297 isValid(); 298 setAvpfRRInterval(nativePtr, interval); 299 } 300 getAvpfRRInterval(long nativePtr)301 private native int getAvpfRRInterval(long nativePtr); 302 @Override getAvpfRRInterval()303 public int getAvpfRRInterval() { 304 isValid(); 305 return getAvpfRRInterval(nativePtr); 306 } 307 getContactParameters(long ptr)308 private native String getContactParameters(long ptr); 309 @Override getContactParameters()310 public String getContactParameters() { 311 isValid(); 312 return getContactParameters(nativePtr); 313 } 314 setContactUriParameters(long ptr, String params)315 private native void setContactUriParameters(long ptr, String params); 316 @Override setContactUriParameters(String params)317 public void setContactUriParameters(String params) { 318 isValid(); 319 setContactUriParameters(nativePtr,params); 320 } 321 getContactUriParameters(long ptr)322 private native String getContactUriParameters(long ptr); 323 @Override getContactUriParameters()324 public String getContactUriParameters() { 325 isValid(); 326 return getContactUriParameters(nativePtr); 327 } 328 getErrorInfo(long nativePtr)329 private native long getErrorInfo(long nativePtr); 330 331 @Override getErrorInfo()332 public ErrorInfo getErrorInfo() { 333 return new ErrorInfoImpl(getErrorInfo(nativePtr)); 334 } 335 enableQualityReporting(long nativePtr, boolean enable)336 private native void enableQualityReporting(long nativePtr, boolean enable); 337 @Override enableQualityReporting(boolean enable)338 public void enableQualityReporting(boolean enable) { 339 isValid(); 340 enableQualityReporting(nativePtr, enable); 341 } 342 qualityReportingEnabled(long nativePtr)343 private native boolean qualityReportingEnabled(long nativePtr); 344 @Override qualityReportingEnabled()345 public boolean qualityReportingEnabled() { 346 isValid(); 347 return avpfEnabled(nativePtr); 348 } 349 setQualityReportingInterval(long nativePtr, int interval)350 private native void setQualityReportingInterval(long nativePtr, int interval); 351 @Override setQualityReportingInterval(int interval)352 public void setQualityReportingInterval(int interval) { 353 isValid(); 354 setQualityReportingInterval(nativePtr, interval); 355 } getQualityReportingInterval(long nativePtr)356 private native int getQualityReportingInterval(long nativePtr); 357 @Override getQualityReportingInterval()358 public int getQualityReportingInterval() { 359 isValid(); 360 return getQualityReportingInterval(nativePtr); 361 } 362 setQualityReportingCollector(long nativePtr, String collector)363 private native void setQualityReportingCollector(long nativePtr, String collector); 364 @Override setQualityReportingCollector(String collector)365 public void setQualityReportingCollector(String collector) { 366 isValid(); 367 setQualityReportingCollector(nativePtr, collector); 368 } getQualityReportingCollector(long nativePtr)369 private native String getQualityReportingCollector(long nativePtr); 370 @Override getQualityReportingCollector()371 public String getQualityReportingCollector() { 372 373 isValid(); 374 return getQualityReportingCollector(nativePtr); 375 } 376 setRealm(long nativePtr, String realm)377 private native void setRealm(long nativePtr, String realm); 378 @Override setRealm(String realm)379 public void setRealm(String realm) { 380 isValid(); 381 setRealm(nativePtr, realm); 382 } getRealm(long nativePtr)383 private native String getRealm(long nativePtr); 384 @Override getRealm()385 public String getRealm() { 386 387 isValid(); 388 return getRealm(nativePtr); 389 } 390 setPublishExpires(long nativePtr, int expires)391 private native void setPublishExpires(long nativePtr, int expires); 392 @Override setPublishExpires(int expires)393 public void setPublishExpires(int expires) { 394 isValid(); 395 setPublishExpires(nativePtr, expires); 396 } getPublishExpires(long nativePtr)397 private native int getPublishExpires(long nativePtr); 398 @Override getPublishExpires()399 public int getPublishExpires() { 400 isValid(); 401 return getPublishExpires(nativePtr); 402 } 403 isPhoneNumber(long nativePtr,String username)404 private native boolean isPhoneNumber(long nativePtr,String username); 405 @Override isPhoneNumber(String username)406 public boolean isPhoneNumber(String username){ 407 return isPhoneNumber(nativePtr,username); 408 } 409 410 @Override setUserData(Object obj)411 public void setUserData(Object obj) { 412 userData = obj; 413 } 414 @Override getUserData()415 public Object getUserData() { 416 return userData; 417 } 418 setCustomHeader(long ptr, String name, String value)419 private native void setCustomHeader(long ptr, String name, String value); 420 @Override setCustomHeader(String name, String value)421 public void setCustomHeader(String name, String value){ 422 setCustomHeader(nativePtr, name, value); 423 } 424 getCustomHeader(long ptr, String name)425 private native String getCustomHeader(long ptr, String name); 426 @Override getCustomHeader(String name)427 public String getCustomHeader(String name){ 428 return getCustomHeader(nativePtr, name); 429 } 430 refreshRegister(long ptr)431 private native void refreshRegister(long ptr); 432 @Override refreshRegister()433 public void refreshRegister() { 434 refreshRegister(nativePtr); 435 } 436 pauseRegister(long prt)437 private native void pauseRegister(long prt); 438 @Override pauseRegister()439 public void pauseRegister() { 440 pauseRegister(nativePtr); 441 } 442 443 } 444