با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. SIP (مخفف Session Initiation Protocol) یک پروتکل است که اجازه می دهد برنامه ها به راحتی تماس های صوتی خروجی و ورودی را بدون نیاز به مدیریت sessions و سطح transport تنظیم کرده و یا ضبط و پخش صدا را به طور مستقیم انجام می دهد. در ادامه ی مباحث این بخش برای آشنایی بیشتر با پروتکل SIP در اندروید با ما همراه باشید.
در این مبحث ما شما را با کلاس ها و توابع پروتکل SIP در اندروید آشنا خواهیم کرد.
دو اپلیکیشن رایج از SIP به شرح زیر است:
پیش نیازهای توسعه اپلیکیشن SIP به شرح زیر است:
خلاصه ای از کلاس های SIP :
ردیف | کلاس و توضیحات مربطه |
---|---|
۱ | SipAudioCall یک فایل صوتی اینترنتی را با SIP مدیریت می کند. |
۲ | SipErrorCode کدهای خطا را طی اعمال SIP برمی گرداند. |
۳ | SipManager API ها را برای انجام وظایف SIP، مانند شروع اتصالات SIP، و دسترسی به خدمات SIP مربوطه ارائه می دهد. |
۴ | SipProfile یک پروفایل SIP، شامل یک حساب SIP، دامنه و اطلاعات سرور را تعریف می کند. |
۵ | SipSession یک SIP session است که با یک SIP dialog یا یک معامله مستقل و با یک dialog همراه است. |
توابع عمده SIP شامل موارد زیر است:
SIP دو کمپوننت عمده را ارائه می دهد:
UAC یا User Agent Client کاربران نهایی هست که درخواست ها را ایجاد و به سرور ارسال می کنند.
UAS یا Server Agent Server سیستمهایی هستند که درخواست تولید شده توسط UAC را دریافت می کنند.
UAS این درخواست ها را پردازش کرده و سپس با توجه به درخواست های آن، پاسخ ها را مطابق با آن تولید می کند.
SipManager یک API از اندروید برای وظایف SIP از جمله مانند شروع اتصالات SIP، و دسترسی به خدمات SIP است.
این کلاس نقطه شروع برای هر اقدام SIP است. شما می توانید Instance آن را با () newInstance دریافت کنید.
SipManager توابع متعددی را برای SIP ارائه می دهد که برخی از آن ها به شرح زیر است:
ردیف | کلاس توضیحات مربوطه |
---|---|
۱ | close(String localProfileUri) یک پروفایل مشخص را برای عدم دریافت/دریافت فراخوانی ها می بندد. |
۲ | getCallId(Intent incomingCallIntent) ID فراخوانی را از broadcast intent مشخص می گیرد. |
۳ | isOpened(String localProfileUri) چک می کند که آیا یک پروفیال مشخص در سرویس SIP برای فراخوانی های and/or دریافتی بسته است یاخیر. |
۴ | isSipWifiOnly(Context context) اگر SIP فقط از طریق WIFI در دسترس باشد True را برمی گرداند. |
۵ | isRegistered(String localProfileUri) بررسی می کند که آیا سرویس SIP پروفایل را برای ارسال تماس به نماینده SIP (مشخص شده در نمایه) ثبت کرده است یا خیر. |
۶ | isVoipSupported(Context context) اگر سیستم از SIP-based VOIP API پشتیبانی کند True را برمی گرداند. |
۷ | takeAudioCall(Intent incomingCallIntent, SipAudioCall.Listener listener) یک SipAudioCall را برای یک تماس ورودی ایجاد می کند. |
۸ | unregister(SipProfile localProfile, SipRegistrationListener listener) برای جلوگیری از دریافت تماس های بیشتر، پروفایل ارائه دهنده SIP مربوطه را به صورت دستی ثبت نام می کند. |
پروتکل SIP در اندروید این امکان را برای اپلیکیشن ها فراهم می کند تا بدون نیاز به دسترسی و مدیریت sessions ها فراخوانی ها و تماس های صوتی ورودی یا خروجی را مدیریت کنید.
در بخش بعدی به Spelling Checker در اندروید می پردازیم.