sip-protocol-fundamentals
$
npx mdskill add TheBushidoCollective/han/sip-protocol-fundamentalsMaster 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
- 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