PHPackages                             webard/nova-zadarma - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. webard/nova-zadarma

ActiveLibrary[API Development](/categories/api)

webard/nova-zadarma
===================

Zadarma VoIP integration to Laravel Nova. Make and receive phone calls directly from your Nova interface.

v2.1.0(1y ago)24.0k↓100%2[4 issues](https://github.com/webard/nova-zadarma/issues)MITPHPPHP ^7.4|^8.0

Since Mar 3Pushed 1y ago2 watchersCompare

[ Source](https://github.com/webard/nova-zadarma)[ Packagist](https://packagist.org/packages/webard/nova-zadarma)[ RSS](/packages/webard-nova-zadarma/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (19)Used By (0)

Laravel Nova Zadarma VoIP Integration
=====================================

[](#laravel-nova-zadarma-voip-integration)

Description
-----------

[](#description)

This package provides integration between Laravel Nova and the Zadarma VoIP service. It allows you to make, receive and manage phone calls directly from your Nova interface!

[![Zadarma SIP User](screenshots/screenshot_2.png)](screenshots/screenshot_2.png)

[![Zadarma SIP Phone Call](screenshots/screenshot_3.png)](screenshots/screenshot_3.png)

Installation
------------

[](#installation)

### Step 1: Install the package

[](#step-1-install-the-package)

Run the following command to install the package:

```
composer require webard/nova-zadarma
```

### Step 2: Publish the configuration

[](#step-2-publish-the-configuration)

Publish the package configuration using the following command:

```
php artisan vendor:publish --provider="Webard\NovaZadarma\NovaZadarmaServiceProvider" --tag=config
```

### Step 3: Provide API keys from Zadarma

[](#step-3-provide-api-keys-from-zadarma)

Add this lines to `.env` file and fill them:

```
ZADARMA_KEY=
ZADARMA_SECRET=
ZADARMA_SIP_LOGIN=
```

Zadarma Secret and Key you can find in Settings -&gt; Integrations and API -&gt; Keys and API:

[![Zadarma API Keys](screenshots/zadarma_1.png)](screenshots/zadarma_1.png)

Zadarma SIP Login is the suffix of PBX number, which can be found under My PBX -&gt; Extensions.

Your SIP Login is behind the painted field.

[![Zadarma SIP Login](screenshots/zadarma_2.png)](screenshots/zadarma_2.png)

### Step 4: Publish the migrations

[](#step-4-publish-the-migrations)

Publish the package migrations using the following command:

```
php artisan vendor:publish --provider="Webard\NovaZadarma\NovaZadarmaServiceProvider" --tag=migrations
```

### Step 5: Register tool in `NovaServiceProvider`

[](#step-5-register-tool-in-novaserviceprovider)

```
use Webard\NovaZadarma\NovaZadarmaTool;

public function tools()
{
    return [
        ...
        NovaZadarmaTool::make(),
    ];
}
```

### Step 6: Update the User model

[](#step-6-update-the-user-model)

1. Add the `HasPhoneCalls` trait to the User model
2. Add `zadarma_sip` and `phone_number` to `$fillable` property
3. Cast `phone_number` field to ` E164PhoneNumberCast::class`.

```
use Propaganistas\LaravelPhone\Casts\E164PhoneNumberCast;
use Webard\NovaZadarma\Traits\HasPhoneCalls;

class User extends Authenticatable {
    use HasPhoneCalls;

    protected $fillable = [
        ...
        'zadarma_sip',
        'phone_number'
    ];

     protected function casts(): array
    {
        return [
            ...
            'phone_number' => E164PhoneNumberCast::class,
        ];
    }
}
```

### Step 7: Modify User resource

[](#step-7-modify-user-resource)

1. Add `Zadarma SIP` field
2. Add `Phone Number` field
3. Add `UserPhoneCalls` field

```
use Webard\NovaZadarma\Nova\Fields\UserPhoneCalls;

class User extends Resource {
    public function fields(NovaRequest $request)
    {
        return [
            ...
            Text::make(__('Zadarma SIP'), 'zadarma_sip')
                ->sortable()
                ->nullable()
                ->rules('nullable', 'max:4'),

            Text::make(__('Phone Number'), 'phone_number')
                ->sortable()
                ->rules('nullable', 'max:20', 'phone'),

            UserPhoneCalls::make(),
        ];
    }
}
```

### Step 8: Add the phone call action to the User resource

[](#step-8-add-the-phone-call-action-to-the-user-resource)

Add the `MakePhoneCall` action to the User resource:

```
use Webard\NovaZadarma\Nova\Actions\MakePhoneCall;

class User extends Resource {
    public function actions(NovaRequest $request)
    {
        return [
            ...
            MakePhoneCall::make()
                ->sole()
        ];
    }
}
```

Warning

`MakePhoneCall` action must be `sole`, because User can make call to only one user at time.

Tip

You can add `->withoutConfirmation()` method to action to allow making phone calls directly after clicking action.

### Step 9: Fill SIP Number in your User profile of Nova

[](#step-9-fill-sip-number-in-your-user-profile-of-nova)

Go to your User edit form and fill `Zadarma SIP` according to SIP number in Zadarma panel. Default created SIP number is 100:

[![Zadarma SIP User](screenshots/screenshot_1.png)](screenshots/screenshot_1.png)

Webhooks
--------

[](#webhooks)

### Step 1: Enable "Notifications" in integrations

[](#step-1-enable-notifications-in-integrations)

Go to Settings -&gt; Integrations and API -&gt; Integrations in Zadarma Panel and enable "Notifications" integration.

[![Zadarma Integrations](screenshots/zadarma_3.png)](screenshots/zadarma_3.png)

### Step 2: Fill settings of "Notifications" integration

[](#step-2-fill-settings-of-notifications-integration)

Go to Notifications settings and enter webhook URL:

```
https://YOUR-DOMAIN.com/nova-vendor/webard/nova-zadarma/webhook

```

and enable checkboxes:

- NOTIFY\_START
- NOTIFY\_END
- NOTIFY\_OUT\_START
- NOTIFY\_OUT\_END
- NOTIFY\_RECORD

[![Zadarma Notifications Settings](screenshots/zadarma_4.png)](screenshots/zadarma_4.png)

### Step 3: Add webhook URL to ignore

[](#step-3-add-webhook-url-to-ignore)

Go to `bootstrap/app.php` file and modify `withMiddleware` method:

```
return Application::configure(basePath: dirname(__DIR__))
    ->withMiddleware(function (Middleware $middleware) {

        $middleware->validateCsrfTokens(except: [
            '/nova-vendor/webard/nova-zadarma/webhook',
        ]);

    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })
    ->create();
```

If you have `fruitcake/laravel-telescope-toolbar` installed, add webhook URL to `ignore_paths` in `config/telescope-toolbar.php`

```
'ignore-paths' => [
    'nova-vendor/webard/nova-zadarma/webhook'
]
```

TODO
----

[](#todo)

I'm are actively seeking contributions to enhance this package. Here are some features I would love to see implemented:

- documentation for Gate
- documentation for Events
- ability to go offline (disable widget on demand)
- more options for icon in header
- after call action modal with customized fields (feedback modal)
- phone call transcriptions using OpenAI/Google Speech To Text/Assembly.ai

Contributing
------------

[](#contributing)

We welcome contributions to improve this plugin! Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them with descriptive messages.
4. Push your changes to your forked repository.
5. Open a pull request to the main repository.

License
-------

[](#license)

This project is licensed under the MIT License. See the [LICENSE.md](LICENSE.md) file for more details.

Contact
-------

[](#contact)

For questions or support, please open an issue on GitHub.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~12 days

Total

18

Last Release

591d ago

Major Versions

v1.1.2 → v2.0.02024-07-22

v1.x-dev → v2.1.02024-09-24

PHP version history (2 changes)v1.0.0PHP ^8.0

v2.0.0PHP ^7.4|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e34f6439ff69a5e372136c97bf9166d48010bfa7dd29af729e8a6db98d58335d?d=identicon)[webard](/maintainers/webard)

---

Top Contributors

[![webard](https://avatars.githubusercontent.com/u/855788?v=4)](https://github.com/webard "webard (57 commits)")[![szepeviktor](https://avatars.githubusercontent.com/u/952007?v=4)](https://github.com/szepeviktor "szepeviktor (4 commits)")

---

Tags

laravellaravel-novanovaphonephone-callsvoipwidgetzadarmalaravelphonenovavoipzadarma

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/webard-nova-zadarma/health.svg)

```
[![Health](https://phpackages.com/badges/webard-nova-zadarma/health.svg)](https://phpackages.com/packages/webard-nova-zadarma)
```

###  Alternatives

[laravel/nova-log-viewer

A Laravel Nova tool for viewing your application logs.

136301.3k1](/packages/laravel-nova-log-viewer)[dniccum/phone-number

A Laravel Nova phone number field with input masking and validation support.

71432.7k](/packages/dniccum-phone-number)[mll-lab/laravel-graphiql

Easily integrate GraphiQL into your Laravel project

683.2M9](/packages/mll-lab-laravel-graphiql)[dniccum/nova-documentation

A Laravel Nova tool that allows you to add markdown-based documentation to your administrator's dashboard.

37116.4k](/packages/dniccum-nova-documentation)[hammerstone/refine-nova

A Laravel Nova integration for the Refine query builder.

3356.5k](/packages/hammerstone-refine-nova)[datomatic/nova-enum-field

A Laravel Nova PHP 8.1 enum field with filters

20134.2k](/packages/datomatic-nova-enum-field)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
