# Android पर VoIP कॉल

Pushwoosh `pushwoosh-calls` मॉड्यूल का उपयोग करके Android के लिए VoIP-शैली की कॉल सूचनाओं का समर्थन करता है। यह Android के टेलीकॉम स्टैक का उपयोग करके नेटिव कॉल UI और जीवनचक्र प्रबंधन को सक्षम बनाता है।


## 1. `pushwoosh-calls` मॉड्यूल जोड़ें

सुनिश्चित करें कि आप अपने प्रोजेक्ट में `pushwoosh-calls` निर्भरता शामिल करें।

**Gradle:**

```groovy
dependencies {
    implementation 'com.pushwoosh:pushwoosh-calls:<latest-version>'
}
```

`<latest-version>` को [Maven Central](https://mvnrepository.com/artifact/com.pushwoosh/pushwoosh-calls) से वर्तमान संस्करण से बदलें।


## 2. कॉल अनुमतियों का अनुरोध करें

हेल्पर फ़ंक्शन का उपयोग करके रनटाइम पर आवश्यक अनुमतियों का अनुरोध करें:

```java
import com.pushwoosh.calls.PushwooshCallSettings;

PushwooshCallSettings.requestCallPermissions();
```

> यह `READ_PHONE_NUMBERS` जैसी अनुमतियों का अनुरोध करने को संभालता है, जो उचित कॉल हैंडलिंग के लिए आवश्यक हैं।



## 3. `CallEventListener` लागू करें और इसे मैनिफेस्ट में पंजीकृत करें

आने वाली कॉल और घटनाओं को संभालने के लिए, अपने ऐप में `CallEventListener` इंटरफ़ेस लागू करें।

#### Java उदाहरण

```java
public class DemoCallEventListener implements CallEventListener {

    @Override
    public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
        // इस विधि को अपने इन-कॉल UI पर नेविगेट करने के लिए लागू करें 
        Intent intent = new Intent(context, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

    @Override
    public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) {
        // खारिज की गई कॉलों को संभालने के लिए इस विधि को ओवरराइड करें 
    }

    @Override
    public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
        // डिस्कनेक्ट की गई कॉलों को संभालने के लिए इस विधि को ओवरराइड करें 
    }

    @Override
    public void onCreateIncomingConnection(@Nullable Bundle payload) {
        // यह सबसे पहला बिंदु है जब कॉल सूचना पेलोड आपके ऐप में सुलभ होता है,
        // कॉल सूचनाओं के साथ उपयोगकर्ता इंटरैक्शन के लिए अपने ऐप UI को तैयार करने के लिए इसका उपयोग करें
    }

    @Override
    public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
        // InCallService की एक्सटेंशन विधि, युग्मित पहनने योग्य उपकरणों के लिए अनुकूलन विकल्प प्रदान करती है
    }

    @Override
    public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
        // InCallService की एक्सटेंशन विधि, युग्मित पहनने योग्य उपकरणों के लिए अनुकूलन विकल्प प्रदान करती है
    }
}
```

#### AndroidManifest.xml

अपने श्रोता वर्ग को `<meta-data>` टैग का उपयोग करके घोषित करें:

```xml
<meta-data
    android:name="com.pushwoosh.CALL_EVENT_LISTENER"
    android:value="com.pushwoosh.demoapp.DemoCallEventListener" />
```


## 4. कॉल सेटिंग्स कॉन्फ़िगर करें (वैकल्पिक)

`PushwooshCallSettings` का उपयोग कॉल व्यवहार, ध्वनियों और प्रदर्शन सेटिंग्स को ठीक करने के लिए करें।

#### उदाहरण उपयोग

```kotlin
import com.pushwoosh.calls.PushwooshCallSettings

PushwooshCallSettings.setPhoneAccount("com.pushwoosh.voip")
PushwooshCallSettings.setPhoneAccountHandle("PushwooshCallHandle")
PushwooshCallSettings.setIncomingCallChannelName("Incoming Calls")
PushwooshCallSettings.setOngoingCallChannelName("Ongoing Calls")
PushwooshCallSettings.setCallSound("custom_ringtone.mp3")
```


## संबंधित लिंक

- [Pushwoosh Android SDK अवलोकन](/hi/developer/pushwoosh-sdk/android-sdk/)
- [Pushwoosh कॉल प्लगइन स्रोत](https://github.com/Pushwoosh/pushwoosh-android-sdk)
- [TelecomManager (Android डॉक्स)](https://developer.android.com/reference/android/telecom/TelecomManager)