sip-protocol-fundamentals

$npx mdskill add TheBushidoCollective/han/sip-protocol-fundamentals

Master SIP messages, methods, and call flows for building VoIP applications with real-time communications.

  • Helps developers understand and implement SIP signaling for VoIP systems.
  • Integrates with Bash and Read tools for protocol analysis and documentation.
  • Surfaces recommendations based on RFC 3261 standards and best practices.
  • Presents results through structured examples and error handling guidance.

SKILL.md

.github/skills/sip-protocol-fundamentalsView on GitHub ↗
---
name: sip-protocol-fundamentals
user-invocable: false
description: Use when working with SIP messages, methods, call flows, and protocol fundamentals for VoIP applications.
allowed-tools:
  - Bash
  - Read
---

# SIP Protocol Fundamentals

Master the Session Initiation Protocol (SIP) for building VoIP applications, understanding SIP messages, methods, and call flows essential for real-time communications.

## Understanding SIP

SIP is an application-layer signaling protocol defined in RFC 3261 for creating, modifying, and terminating sessions with one or more participants.

## SIP Message Structure

```
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com>
Content-Type: application/sdp
Content-Length: 142
```

## When to Use This Skill

Use sip-protocol-fundamentals when building VoIP applications with SIP signaling.

## Best Practices

- Always include unique branch parameters in Via headers
- Implement proper transaction timeout and retransmission
- Handle all SIP response codes appropriately

## Common Pitfalls

- Forgetting to include branch parameter in Via headers
- Not implementing transaction retransmission timers
- Ignoring provisional responses

## Resources

- [RFC 3261 - SIP](https://tools.ietf.org/html/rfc3261)
- [PJSIP](https://www.pjsip.org/)

More from TheBushidoCollective/han

SkillDescription
absinthe-resolversUse when implementing GraphQL resolvers with Absinthe. Covers resolver patterns, dataloader integration, batching, and error handling.
absinthe-schemaUse when designing GraphQL schemas with Absinthe. Covers type definitions, interfaces, unions, enums, and schema organization patterns.
absinthe-subscriptionsUse when implementing real-time GraphQL subscriptions with Absinthe. Covers Phoenix channels, PubSub, and subscription patterns.
act-docker-setupUse when configuring Docker environments for act, selecting runner images, managing container resources, or troubleshooting Docker-related issues with local GitHub Actions testing.
act-local-testingUse when testing GitHub Actions workflows locally with act. Covers act CLI usage, Docker configuration, debugging workflows, and troubleshooting common issues when running workflows on your local machine.
act-workflow-syntaxUse when creating or modifying GitHub Actions workflow files. Provides guidance on workflow syntax, triggers, jobs, steps, and expressions for creating valid GitHub Actions workflows that can be tested locally with act.
ameba-configurationUse when configuring Ameba rules and settings for Crystal projects including .ameba.yml setup, rule management, severity levels, and code quality enforcement.
ameba-custom-rulesUse when creating custom Ameba rules for Crystal code analysis including rule development, AST traversal, issue reporting, and rule testing.
ameba-integrationUse when integrating Ameba into development workflows including CI/CD pipelines, pre-commit hooks, GitHub Actions, and automated code review processes.
analyze-performanceAnalyze performance metrics and identify slow transactions in Sentry